加速量角器

时间:2017-08-23 13:35:34

标签: angular protractor

我试图在按钮上测试涟漪效果,但在运行测试时,点击大约需要1秒才能完成,此时涟漪效应已经消失。

代码:

let button =  element(by.css('#primary-button'));

button.click();
expect(element.all(by.css('#primary-button .ripple-effect')).count()).toBe(1);

我也试过鼠标向下/向上但面临同样的问题。

此示例大约需要10秒钟才能执行:

let button =  element(by.css('#primary-button'));

for (let i = 0; i < 10; i++) {
    button.click();
}

expect(element.all(by.css('#primary-button .ripple-effect')).count()).toBe(10);

1 个答案:

答案 0 :(得分:1)

我会建议几个技巧:

1)禁用此测试的隐式等待browser.manage().timeouts().implicitlyWait(0)它们在每次搜索元素之前应用,因此可能会引入一点延迟。

2)禁用此测试的角度同步:browser.waitForAngularEnabled(false)。这也适用于每个操作,但在这里它可能会减慢我们的点击次数。

3)尝试使用低级api -

let button =  element(by.css('#primary-button'))
browser.actions().click(button).perform()

这可以通过坐标来实现,所以可能会更快

4)切换到使用browser.executeScript()在页面上执行javascript - 当出现涟漪效应时,您可以单击并从脚本返回true,然后在测试中断言返回true。也应该是相当快的,但那将是合成点击,而不是像普通用户点击。