describe('Login Scenarios', function () {
it('First IT block', function () {
browser.get('http:XXXXXXXXXXXXXXXXXXXX');
browser.manage().window().maximize();
LoginPage.Login(USERNAME, PASSWORD);
});
it('Second IT block', function () {
browser.waitForAngularEnabled(false);
Properties.logout.click();
Properties.confirmlogout.click();
AutomationUtility.hold();
});
});
当我将所有代码保留在第一个IT块中时,它运行良好,但是当分成多个测试用例时,量角器将仅执行第一个IT块,然后它给出错误消息,如下所示:-
Error: Error while waiting for Protractor to sync with the page: "both angularJS testability and angular testability are undefined. This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor's bootstrapping. See http://git.io/v4gXM for details
然后,量角器不会关闭浏览器,并给出错误信息,即找不到按量角器按时间顺序运行测试用例的元素等。
答案 0 :(得分:0)
将browser.waitForAngularEnabled(false);
移至配置protractor.conf.js
文件到onPrepare
部分。
export let config = {
...
...
onPrepare () => {
browser.waitForAngularEnabled(false);
...
},
...
...
};
或禁用在browser.get()
之前等待角度,然后在browser.get()
之后启用
describe('Login Scenarios', function () {
it('First IT block', function () {
// disable if opening page is non-angular page
browser.waitForAngularEnabled(false);
browser.get('http:XXXXXXXXXXXXXXXXXXXX');
// revert back to enable, after the non-angular page opened.
browser.waitForAngularEnabled(true);
browser.manage().window().maximize();
LoginPage.Login(USERNAME, PASSWORD);
});
it('Second IT block', function () {
Properties.logout.click();
Properties.confirmlogout.click();
AutomationUtility.hold();
});
});
答案 1 :(得分:0)
我可以通过将URL放在onPrepare部分中来解决。进入配置protractor.conf.js文件:-
返回browser.get('http://XXXXXXXXXXXXXXXXXXXX/login');
因此,单击登录按钮后量角器不会失败。等待量角器与页面同步时也没有出现任何错误。