私はbrowser.waitがブロッキングコールであるはずですが、期待通りに動作していないと仮定しています。ここに私のサンプルです:私はbrowser.waitが実際に阻止されたと仮定するので、今分度器browser.waitは実際には待機しません。
describe("browser.wait", function() {
beforeEach(function() {
browser.wait(function() {
console.log('1 - BeforeEach WAIT');
return true;
});
console.log('2 - BeforeEach after wait');
});
afterEach(function() {
browser.wait(function() {
console.log('4 - afterEach WAIT');
return true;
});
console.log('5 - afterEach after wait');
});
it('should probably actually wait.', function() {
console.log('3 - IT statement');
expect(1).toBe(1);
});
、私は私にconsole.logの呼び出しが順番に実行されるだろうと思いました。 1,2,3,4,5;
私が手に実際の出力は次のようになります。
2 - BeforeEach after wait
1 - BeforeEach WAIT
3 - IT statement
5 - afterEach after wait
4 - afterEach WAIT
は、どのように私は実際に待ってbrowser.wait得ることができますか?あるいは間違った関数を完全に使っていますか?私はブラウザが次の呼び出しのために必要な場所に到達するまでブロックする必要があります。
このことについて素敵な事 'Returns'セクションは、これは' Promise'であることを警告しながら、ドキュメント内のコード例では、待機をブロックとしてこれを示していること。 参照:https://angular.github.io/protractor/#/api?view=webdriver.WebDriver.prototype.wait doc: 'var started = startTestServer(); driver.wait(started、 5 * 1000、 'サーバーは5秒以内に起動する'); driver.get(getServerUrl()); ' – atoth
@atoth - ステートメントに同意します。あなたが指摘したサンプルコードは誤解を招きます。すなわち、 'driver.get()'関数は、実際に実現された約束の中に実際にラップされるべきです。 –