我对Protractor和E2E测试相当新,但我花了几天时间研究,设置页面对象和创建测试套件,我想知道的一件事是如何在两者之间创建良好的手动导航页面对象和实际页面。
假设我的网站上有一些可以导航到其他部分的部分;其中一个的页面对象可能如下所示:
var SomePartPage = function() {
this.btnPopUp = // button for opening some pop up
...
this.openPopUp = function() {
this.btnPopUp.click();
return popUpPage;
};
};
我遵循指南,返回页面对象是一件好事,我假设通过调用click()
返回的承诺将在返回之前得到解决(根据WebDriverJS的控制流程)。
但我在测试中有一个设置,我想验证此导航是否正确进行,有时它可以正常工作,有时则不然。所以我假设它是因为我想要与它进行交互时(即openPopUp()
返回时)我的弹出窗口并不总是满载。
我的假设是否正确?如果是这样,我该如何处理?我当然可以使用手动计时器和承诺,但是当我的弹出窗口完全加载时,我宁愿有一些自动解决的承诺。
答案 0 :(得分:0)
实际上我不认为返回会等待click();
我认为你应该做类似的事情:
browser.wait(this.btnPopUp.click(), timeout)