量角器没有等待页面加载Angular4

时间:2018-02-09 07:52:44

标签: angular protractor

我一直在运行量角器,但必须加入

browser.sleep(1000)browser.ignoreSynchronization = true以使其运行,尤其是在登录后等,否则它无法获取该页面。

我知道browser.sleep不是推荐的做法,这就是我问的原因。

1 个答案:

答案 0 :(得分:0)

browser.sleep的问题是当您的软件操作需要更多时间然后指定您的测试将失败时。 另一个问题是,如果你使用了很多browser.sleep s,那么你的测试可能会非常慢,因为测试正等待你在browser.sleep中指定的整个时间。 但是当然有一些情况你需要使用browser.sleep,但在我看来并不多。

等待元素的更好解决方案是具有Expected Conditionsbrowser.wait函数。 browser.wait获取一个方法作为参数,如果特定条件变为真,它将返回true,并且只要函数未解析或达到超时,它就会等待。

示例:

var EC = protractor.ExpectedConditions;

var button = element(by.id('submitLogin'));
// Waits max. 10 seconds for the button to become clickable
browser.wait(EC.elementToBeClickable(button), 10000);