使用量角器面临计时问题。有时我的量角器测试用例由于网络或性能问题而失败。我用browser.sleep()解决了现有的问题。后来我来了解一下browser.wait()。browser.sleep()和browser.wait()方法有什么区别?
他们之间有什么区别,哪一个更适合解决网络或性能问题。
使用量角器面临计时问题。有时我的量角器测试用例由于网络或性能问题而失败。我用browser.sleep()解决了现有的问题。后来我来了解一下browser.wait()。browser.sleep()和browser.wait()方法有什么区别?
他们之间有什么区别,哪一个更适合解决网络或性能问题。
当谈到与时机的问题,它是诱人的,容易把一个“快” browser.sleep(),继续前进。
问题是,它有一天会失败。对于要设置的睡眠超时值没有黄金/通用规则,因此,在某些情况下,由于网络或性能或其他问题,可能需要更多时间才能加载页面或使元素变为可见等。另外,大部分那时候,你最终会等到比你实际应得的更多。
browser.wait()另一方面的工作方式不同。您为Protractor/WebDriverJS提供Expected Condition function执行并等待函数的结果评估为true。量角器将持续执行该功能,并在该功能的结果为真或达到可配置的超时后停止。
有多种内置预期条件,但您也可以创建并使用自定义条件(样本here)。
browser.sleep()
时刻表一个命令,以使驾驶者睡眠的时间给定的量。
browser.wait()
调度命令等待状态以保持或承诺得到解决。
此功能阻止WebDriver的控制流,而不是JavaScript运行时。它只会延迟将来的webdriver命令的执行(例如,它会导致Protractor在将未来的命令发送到硒服务器之前等待),并且仅在启用webdriver控制流时才会执行。
参考查看详细:http://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.sleep