2017-08-09 154 views

回答

5

当谈到与时机的问题,它是诱人的,容易把一个“快” browser.sleep(),继续前进。

问题是,它有一天会失败。对于要设置的睡眠超时值没有黄金/通用规则,因此,在某些情况下,由于网络或性能或其他问题,可能需要更多时间才能加载页面或使元素变为可见等。另外,大部分那时候,你最终会等到比你实际应得的更多。

browser.wait()另一方面的工作方式不同。您为Protractor/WebDriverJS提供Expected Condition function执行并等待函数的结果评估为true。量角器将持续执行该功能,并在该功能的结果为真或达到可配置的超时后停止。

有多种内置预期条件,但您也可以创建并使用自定义条件(样本here)。

2

browser.sleep()

时刻表一个命令,以使驾驶者睡眠的时间给定的量。

browser.wait()

调度命令等待状态以保持或承诺得到解决。

此功能阻止WebDriver的控制流,而不是JavaScript运行时。它只会延迟将来的webdriver命令的执行(例如,它会导致Protractor在将未来的命令发送到硒服务器之前等待),并且仅在启用webdriver控制流时才会执行。

文档链接http://www.protractortest.org/#/api

相关问题