jmc*_*n92 14 javascript testing angularjs selenium-webdriver protractor
我正在使用Protractor(v 1.3.1)为我的Angular 1.2.26应用程序运行E2E测试.
但有时,测试是可以的,有时候不是.似乎有时检查是在显示更新之前完成的(或类似"同步"问题).我尝试了很多选择:
browser.driver.sleep说明,browser.executeScript('$.fx.off = true')browser.waitForAngular()说明没有成功.
使用量角器重新进行E2E测试的最佳做法是什么?
JM.
ale*_*cxe 13
每当我有类似的问题,我使用的是browser.wait()与"预期的条件"(在量角器1.7引入的).有一组通常足够的内置预期条件,但您可以轻松定义自定义预期条件.
例如,等待元素变为可见:
var EC = protractor.ExpectedConditions;
var e = element(by.id('xyz'));
browser.wait(EC.visibilityOf(e), 10000);
expect(e.isDisplayed()).toBeTruthy();
Run Code Online (Sandbox Code Playgroud)
几点说明:
如果不满足条件并且将引发超时错误,您可以指定自定义错误消息,请参阅等待超时错误上的自定义消息:
browser.wait(EC.visibilityOf(e), 10000, "Element 'xyz' has not become visible");
Run Code Online (Sandbox Code Playgroud)您可以设置EC为指向的全局可用变量protractor.ExpectedConditions.将此行添加到onPrepare()配置中:
onPrepare: function () {
global.EC = protractor.ExpectedConditions;
}
Run Code Online (Sandbox Code Playgroud)作为自定义预期条件的示例,请参阅此答案
| 归档时间: |
|
| 查看次数: |
9669 次 |
| 最近记录: |