browser.sleep() 和 browser.wait() 方法有什么区别?



面临量角器的定时问题。 有时我的量角器测试用例会因网络或性能问题而失败。我已经解决了浏览器.sleep((的现有问题。后来我才知道 browser.wait((。

它们之间有什么区别,哪一个更适合解决网络或性能问题。

在处理时间问题时,放置一个"快速"的browser.sleep((并继续前进是诱人的,也很容易。

问题是,它总有一天会失败。关于设置什么睡眠超时没有黄金/通用规则,因此,在某些时候由于网络或性能或其他问题,加载页面或元素变得可见等可能需要更多时间。另外,大多数时候,您最终会等待比实际应该等待的更多。

另一方面,browser.wait(( 的工作方式不同。您为量角器/WebDriverJS 提供了一个预期条件函数来执行并等待函数的结果计算为 true。量角器将连续执行函数,并在函数结果计算结果为 true 或达到可配置超时时停止。

有多个内置的预期条件,但您也可以创建和使用自定义条件(此处的示例(。

  • sleep:计划命令以使驱动程序在给定时间内休眠
  • 等待
  • :计划命令以等待条件保持或承诺解决。

详情参考:http://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.sleep

browser.sleep((

计划命令以使驱动程序在给定的时间内处于睡眠状态。

browser.wait((

计划命令以等待条件保持或承诺解决。

此函数阻止 WebDriver 的控制流,而不是 JavaScript 运行时。它只会延迟未来的 Web 驱动程序命令的执行(例如,它会导致量角器在将未来的命令发送到 selenium 服务器之前等待(,并且仅在启用 Web 驱动程序控制流时。

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

最新更新