2016-04-09 3 views
5

Ich bin neu bei Winkelmesser (kann nur 1 Tag alt sagen) und habe versucht, Ende-zu-Ende-Test zu laufen.Zeitüberschreitung, die darauf wartet, dass der Winkelmesser nach 11 Sekunden mit der Seite synchronisiert

Jedes Mal, wenn ich conf.js starte, werde ich mit "Zeitüberschreitung beim Warten auf Winkelmesser, um nach 11 Sekunden mit der Seite zu synchronisieren" angezeigt.

Bevor Sie diese Frage stellen, haben Sie alle Optionen anderer Teilnehmer ausprobiert, können das Problem jedoch immer noch nicht lösen und bitten Sie daher um Ihre Hilfe.

zu unterstützen, unten sind die Details meiner Konfigurationen und spec js Dateien:

Conf.js:

exports.config = { 
     directConnect: true, 
     capabilities: {'browserName': 'chrome'}, 
     framework: 'jasmine', 
     specs: ['example_spec.js'], 
    jasmineNodeOpts: { 
    defaultTimeoutInterval: 100000 
     } 
    }; 

example_spec.js:

describe('forfirm homepage', function() { 
     it('login window should open', function() { 
     browser.get('https://www.forfirm.com'); 
     element(by.model('forfirm.email')).sendKeys('[email protected]'); 
     element(by.model('form.password')).sendKeys('Password'); 
      }); 
     }); 

Ausgabe erhalten:

 Failures: 
     1) forfirm homepage login window should open 
     Message: 
     Failed: Timed out waiting for Protractor to synchronize with the page after 11 seconds. Please see https://github.com/angular/protractor/blob/master/docs/faq.md. The following tasks were pending: 
     - $timeout: function(){a.next(),h=f(j,5e3)} 
     Stack: 
     Error: Failed: Timed out waiting for Protractor to synchronize with the page after 11 seconds. Please see https://github.com/angular/protractor/blob/master/docs/faq.md. The following tasks were pending: 
     - $timeout: function(){a.next(),h=f(j,5e3)} 
    at /Users/rohitgathibandhe/npm-global/lib/node_modules/protractor/node_modules/jasminewd2/index.js:101:16 
    at Promise.invokeCallback_ (/Users/rohitgathibandhe/npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1329:14) 
    at TaskQueue.execute_ (/Users/rohitgathibandhe/npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2790:14) 
    at TaskQueue.executeNext_ (/Users/rohitgathibandhe/npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2773:21) 

    1 spec, 1 failure 
    Finished in 22.022 seconds 
    [launcher] 0 instance(s) of WebDriver still running 
    [launcher] chrome #01 failed 1 test(s) 
    [launcher] overall: 1 failed spec(s) 
    [launcher] Process exited with error code 1 

Auch beim Ausführen des Winkelmessers conf.js konnte ich den Browser des Winkelmessers nicht sehen.

+0

'browser.ignoreSynchronization = true;' in onPrepare das Problem in meinem Fall gelöst. – Shardul

Antwort

4

Sie einen Blick auf Timeouts nehmen und versuchen, alle von ihnen zu setzen ersten

allScriptsTimeout: 120000, 
getPageTimeout: 120000, 
jasmineNodeOpts: { 
    defaultTimeoutInterval: 120000 
}, 

Update: i ignoreSynchronization hasse, sollten Sie darüber lesen, wie es in der offiziellen Transporteur Dokumentation zu vermeiden - dies versuchen, :

conf.js

exports.config = { 
directConnect: true, 
capabilities: {'browserName': 'chrome'}, 
framework: 'jasmine', 
specs: ['example_spec.js'], 
allScriptsTimeout: 120000, 
getPageTimeout: 120000, 
jasmineNodeOpts: { 
    defaultTimeoutInterval: 120000 
}, 
onPrepare: function() { 
    browser.driver.manage().window().maximize(); 
}}; 

example_spec.js

describe('forfirm homepage', function() { 
it('login window should open', function() { 
    browser.ignoreSynchronization = true; 
    browser.get('https://www.forfirm.com'); 
    element(by.model('form.email')).sendKeys('[email protected]'); 
    element(by.model('form.password')).sendKeys('Password'); 
    browser.sleep(5000); 
});}); 
+0

ich oben genannten Vorschläge hinzugefügt, aber immer Fehler wie, ERROR - fehlgeschlagen Konfigurationsdatei conf.js /Users/rohitgathibandhe/npm-global/lib/node_modules/protractor/FFAutomation/conf.js:17 defaultTimeoutInterval Laden: 120000 ^^^ ^^^^^^^^^^^^^^^^ SyntaxError: Unerwarteter Bezeichner bei exports.runInThisContext (vm.js: 53: 16) bei Module._compile (module.js: 387: 25) bei Object.Module._extensions..js (module.js: 422: 10) bei Module.load (module.js: 357: 32) bei Function.Module._load (Modul.js: 314: 12) at Module.require (module.js: 367: 17) –

+0

Und wenn ich "defaultTimeoutInterval: 120000" kommentieren, erhalte ich eine Fehlermeldung "Eine Jasmine spec Zeit abgelaufen. Zurücksetzen der WebDriver Control Flow." Fehler: 1) Forfirm Login Login-Funktionalität Nachricht: Fehler: Timeout - Async Callback wurde nicht innerhalb des von jasmine.DEFAULT_TIMEOUT_INTERVAL angegebenen Zeitlimits aufgerufen. Stack: Fehler: Timeout - Async-Rückruf wurde nicht innerhalb des von jasmine.DEFAULT_TIMEOUT_INTERVAL angegebenen Zeitlimits aufgerufen. bei Timer.listOnTimeout (timers.js: 92: 15) 1 spec, 1 Ausfall in 30,108 Sekunden Finished –

+0

ich alles, aber nichts versucht haben, funktioniert. In Anbetracht der Fehlermeldung habe ich "allScriptsTimeout: timeout_in_millis" zu meiner Datei cons.js hinzugefügt, wie auf https://github.com/angular/protractor/blob/master/docs/timeouts.md vorgeschlagen, aber es gibt mir den Fehler ERROR - fehlgeschlagenes Laden Konfigurationsdatei conf.js, bitte schlagen Sie eine Lösung vor –

3

Ich glaube, das sollte das Problem lösen, wie in der offiziellen Dokumentation von Protractor unter "https://github.com/angular/protractor/blob/master/docs/timeouts.md".

Interessanterweise sehe ich in unserer Anwendung, dass dies immer noch 11 Sekunden Standard dauert, obwohl ich das allScriptsTimeout auf einen Wert von sagen wir 120 Sekunden gesetzt habe.

Ich habe versucht, dies in OnPrepare auch zu tun, obwohl ich sehe die gleiche Zeit Fehler, der angibt, Winkelmesser mit der Seite für 11 Sekunden synchronisiert. Alle Gedanken würden sehr geschätzt werden.

Im Folgenden ist ein Beispiel für meine Config (Node - 4.2.4, Protractor - 3.1.1)

exports.config = { 
    framework: 'jasmine', 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    specs: ['DemoTest.js'], 
    getPageTimeout: 120000, 
    allScriptsTimeout: 120000, 

    capabilities: { 
    browserName: 'chrome', 
    }, 

    onPrepare: function(){ 
     browser.ignoreSynchronization = true; 
     getPageTimeout: 120000; 
     allScriptsTimeout: 120000; 
     jasmine.DEFAULT_TIMEOUT_INTERVAL = 180000; 

    }, 
} 
Verwandte Themen