E2E最佳做法-等待页面上的元素

时间:2018-08-18 15:39:51

标签: protractor e2e-testing

最近,我们的团队已采用blue-harvest进行E2E测试,这似乎是Protractor的包装。

我注意到我们的测试有些脆弱,因为有时它们通过了,有时却没有通过。即使什么都没有改变,而您只是再次运行它们,结果都是间歇性的。

我觉得原因之一是因为我们的测试中有太多超时,以至于等待可点击,可见等。

就最佳做法而言,总是总是必须等待页面上的内容,然后再单击它们或与它们进行交互以对其进行测试?

我觉得使用slow(在蓝色收获的情况下),甚至agonizinglySlow看起来也不好,这是脆弱测试的结果。

如果我选择继续沿着这条路线走,那么让所有事情总是等待会更好吗?而不是将某些测试编写为:

await slow.see('My Element');
await click('My Element');
await click('Another Element');
await slow.see('Another Element');

我是否应该保持一致并使一切变慢?

谢谢

1 个答案:

答案 0 :(得分:1)

说实话,我一点也不了解blue-harvest,但我非常了解protractor

因为量角器是Selenium的包装器,并且支持Angular,所以我们通常不需要等待页面上的每个操作。量角器知道Angular应用程序何时工作,并停止测试执行,直到Angular完成工作。

但是,我们仍然应该手动等待更复杂的操作。

我建议将等待次数减少到最少,仅在特殊情况下使用。不过,量角器https://www.protractortest.org/#/api?view=ProtractorExpectedConditions.prototype.elementToBeClickableExpectedConditions更好