隐式等待:如果设置了等待,它将等待每个findElement
/ findElements
来电的指定时间。如果操作没有完成,它将抛出异常。
假设我们将隐式等待设置为10秒。我的问题是,如果findElement
行动在10秒之前完成,那么selenium会继续下一步吗?
答案 0 :(得分:3)
是即可。设置隐式等待会导致驱动程序对象 等待 达设定时间,如果它正在查找的元素 未立即找到 。驱动程序对象每500毫秒轮询一次DOM,直到找到该元素或超时为止。
这是official Selenium documentation page的解释:
隐式等待是告诉WebDriver对DOM进行轮询 尝试查找一个或多个元素的时间量 没有立即可用。默认设置为0.一旦设置, 隐式等待是为WebDriver对象实例的生命周期设置的。
所以,简单地回答你的问题,是的,一旦找到它正在寻找的元素,它就会继续执行后续步骤。您也可以理解,像@sircapsalot这样的简单实验已经证明了这一点。
答案 1 :(得分:2)
是即可。如果在命中隐式超时之前找到该元素,它将继续下一步。
@Test
public void test29800926() {
driver.get("http://ddavison.io/tests/getting-started-with-selenium.htm");
driver.manage().timeouts().implicitlyWait(30000, TimeUnit.MILLISECONDS);
System.out.println(driver.findElement(By.id("click")).getText());
}
不是等待我将隐式等待设置为(30000ms / 1000 = 30秒)的总共30秒,而是立即找到它并继续打印元素的文本。