私はいくつかのエンドツーエンドのテストを記述しようとしていますが、非同期を使用して待っていました。
設定ファイル
exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js'],
Selenium_PROMISE_MANAGER: false,
getPageTimeout: 10000,
multiCapabilities: [
{
browserName: 'firefox'
}, {
browserName: 'chrome'
}
]
}
スペックファイル
describe('home-view', function(){
beforeEach(async function(){
await browser.get('http://localhost:49335/index.html#!/home');
});
it('sorted by firstname', async function(){
await element(by.css("[ng-click=\"sortData('firstname')\"]")).click();
var firstname = element.all(by.repeater('a in emps')).all(by.css('td'));
expect(await firstname.get(0).getText()).toEqual('abraham');
});
})
エラー分度器がページと同期するのを待っている間のエラー: "angularJSのテスト可能性とangularテスト可能性の両方が未定義です。これは、これが非角度ページであるか、テストにクライアントが含まれているためである可能性があります。分度器のブートストラップに干渉する可能性があるサイドナビゲーション。」
このエラーが発生するのはなぜですか?ありがとう
GetPageTimeOutを20秒より長くします。 browser.getメソッドの後に、browser.sleep(2000)のような明示的な待機を使用します。発生したエラーは、Webページからの応答が遅いためである可能性があり、またseleniumAddressの代わりにdirctConnectを使用します。
以前に私がこれを自分のscript.jsに追加するために必要なすべてbrowser.driver.ignoreSynchronization = true;
しかし、これを追加することで私の問題は解決しました。 browser.waitForAngularEnabled(false);
つまり、最終的なscript.jsは
describe('My first non angular class', function() {
it('My function', function() {
browser.driver.ignoreSynchronization = true;
browser.waitForAngularEnabled(false);
browser.driver.manage().window().maximize();
//browser.get('http://juliemr.github.io/protractor-demo/');
browser.driver.get('https://stackoverflow.com/users/login');
element(by.id('email')).sendKeys('6');
})
})