我一直在运行量角器,但必须加入
browser.sleep(1000)
和browser.ignoreSynchronization = true
以使其运行,尤其是在登录后等,否则它无法获取该页面。
我知道browser.sleep
不是推荐的做法,这就是我问的原因。
答案 0 :(得分:0)
browser.sleep
的问题是当您的软件操作需要更多时间然后指定您的测试将失败时。
另一个问题是,如果你使用了很多browser.sleep
s,那么你的测试可能会非常慢,因为测试正等待你在browser.sleep
中指定的整个时间。
但是当然有一些情况你需要使用browser.sleep
,但在我看来并不多。
等待元素的更好解决方案是具有Expected Conditions的browser.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);