【发布时间】:2018-12-12 14:33:15
【问题描述】:
我已经开始在 Protractor 作为我们的 e2e 自动化测试工具进行 POC。 我们的应用程序采用棱角分明的设计,非常适合。
但是,我需要通过 google 登录,这是一个非 Angular 网站,因此在我的测试开始时我声明
browser.ignoreSynchronization = true;
那我去
输入我的谷歌凭据并点击登录
此时我尝试转到我的应用程序的 URL,这是一个 Angular 应用程序,所以我希望转
browser.ignoreSynchronization = false;
以上所有步骤都是 beforeEach 的一部分,因此我可以在每次测试之前登录
但是当我将 ignoreSynchronization 设置为 false 时,我的所有测试都开始失败。 另一方面,如果我不将其设置为 false,我将不得不使用大量 browser.sleeps,因为 Protractor 仍将其视为非 Angular 应用程序并且不会等待 Angular 完全加载
我还尝试将 ignoreSynchronization = false 放在每个单独的测试中,而不是 beforeEach ,但即便如此,我的所有测试都开始失败。
下面是我的 beforeEach 代码
browser.ignoreSynchronization = true;
browser.driver.manage().window().setSize(1280, 1024);
browser.get(googlelogin);
email.sendKeys('username');
next.click();
browser.wait(EC.visibilityOf(pwd), 5000);
pwd.sendKeys('pwd');
signin.click();
browser.ignoreSynchronization = false;
browser.driver.get(tdurl);
【问题讨论】:
-
如果切换最后两个步骤会怎样?获取下一个url(角度页面),然后设置
browser.ignoreSynchronization = false;此外,为了安全起见,您还可以为 Angular 页面上的元素添加更多预期条件。
标签: protractor