我试图弄清楚为什么下面的.click()
撞击了量角器:
this.clickSecondPanel = function () {
element(by.css('div.panels-gs.panel-top-two-gs')).click();
}
直到我将该行改为:
element(by.css('div.panels-gs.panel-top-two-gs')).click;
我的spec.js看起来像:
var DataCardPage = require('./pageObjects/dataCard.page.js');
var dataCardPage = new DataCardPage();
describe('Clicking on the 2nd panel', function () {
dataCardPage.clickSecondPanel();
it('Should select the 2nd test panel', function () {
expect(dataCardPage.getSecondPanelText()).toBe('TEST123');
});
在我的代码的其他地方,我使用.click()
(带有parenths),所以这让我感到困惑。
错误很糟糕:
Started
[17:44:23] E/launcher - Error while waiting for Protractor to sync with the page
: "window.angular is undefined. This could be either because this is a non-angu
lar page or because your test involves client-side navigation, which can interfe
re with Protractor's bootstrapping. See http://git.io/v4gXM for details"
任何建议表示赞赏......
鲍勃
答案 0 :(得分:2)
在上面的评论中解决了这个问题,并将其作为答案发布。
我的建议是尝试移动clickSecondPanel()
区域内的it
。它本身只是从“最佳实践”的角度看起来很可疑,因为我没有任何茉莉花功能之外的代码,即it
,beforeAll
,afterAll
等等(不要甚至知道我在哪里诚实地学习了这种习惯。
它似乎也会影响控制流和异步执行,因此click()
事件过早触发。这可以部分由this documentation和/或此blog post
答案 1 :(得分:1)
在测试开始时尝试使用browser.ignoreSynchronization=true
。可能是您尝试自动化的应用程序中不包含角度。