一尘不染

如何获得量角器可靠的结果?

angularjs

我正在使用Protractor(v 1.3.1)为Angular 1.2.26应用程序运行E2E测试。

但是有时候,测试还可以,有时候却不行。似乎有时检查是在更新显示之前完成的(或类似“同步”的问题)。我尝试了很多选择:

  • 添加browser.driver.sleep说明,
  • 使用禁用效果 browser.executeScript('$.fx.off = true')
  • 添加browser.waitForAngular()说明

没有成功。

与量角器进行可靠的E2E测试的最佳实践是什么?

JM。


阅读 304

收藏
2020-07-04

共1个答案

一尘不染

每当我有类似的问题,我使用的是browser.wait()与“预期的条件”(在量角器1.7引入的)。通常有一组内置的期望条件就足够了,但是您可以轻松定义自定义期望条件。

例如,等待 元素可见

var EC = protractor.ExpectedConditions;
var e = element(by.id('xyz'));

browser.wait(EC.visibilityOf(e), 10000);
expect(e.isDisplayed()).toBeTruthy();

一些注意事项:

  • 您可以指定一个自定义错误消息,以防不满足条件并抛出超时错误,请参阅关于等待超时错误的自定义消息:

    browser.wait(EC.visibilityOf(e), 10000, "Element 'xyz' has not become visible");
    
  • 您可以将其设置EC为指向的全局可用变量protractor.ExpectedConditions。将此行添加到onPrepare()您的配置中:

    onPrepare: function () {
    global.EC = protractor.ExpectedConditions;
    

    }

2020-07-04