Selenium WebDriver提供了隐式等待来同步测试。当使用了隐式等待执行测试的时候,如果WebDriver没有在DOM中找到元素,将继续等待,超出设定时间后,抛出找不到元素异常
即,当元素没有立即出现的时候,隐式等待将等待一段时间后,再查找DOM。默认时间是0。
一旦设置了隐式等待,它将 存在在整个webdriver对象实例的生命周期中 ,隐式等待会让一个正常响应的应用的测试变慢,会在寻找 每个 元素时进行等待,这样增加了整个测试执行的时间。
应该避免或减少使用隐式等待
//等待60s
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
注:
WebDriver.Timeouts implicitlyWait(long time, java.util.concurrent.TimeUnit unit)
当查找的元素没有立即出现的时候,指定driver的等待时间
当查找一个元素的时候,driver应该轮询页面直到 该元素被找到 或者 超出设置的超时时间 (在抛出一个NoSuchElementException异常之前)
当查找一组元素的时候,driver应该轮询页面直到 至少找到一个元素 或者 超出设置的超时时间
增加隐等待超时应谨慎使用,因为它会对测试执行时间产生不利的影响,在使用像的XPath这样较慢的定位策略时尤其如此。
参数:
time——等待时间的值
unit——等待时间的测量单位