何时在Selenium Webdriver中使用显式等待vs隐式等待?我在用:driver.manage().timeouts().implicitlyWait(180, TimeUnit.SECONDS);但是对于下面的元素,它仍然会不断失败 driver.findElement(By.id("name")).clear();
driver.findElement(By.id("name")).sendKeys("Create_title_01");我添加了等待代码:for (int second = 0;; second++) {
if (second >= 120) fail("timeout");
try { if (isElementPresent(By.id("name"))) break; } catch (Exception e) {}
Thread.sleep(1000);
}不应该隐含等待,直到找到一个元素?如果我使用显式等待而不是我添加的代码,它会更好Thread.sleep()吗?
3 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
隐式等待 - 它是适用于所有元素的全局设置,如果元素在指定时间之前出现,则脚本将开始执行,否则脚本将抛出NoSuchElementException
。在setup方法中使用的最佳方法。只影响By.findelement()
。
Thread.sleep()
- 它将为脚本休眠时间,而不是在脚本中使用的好方法,因为它无条件地睡眠。如果5%的情况下2秒不够怎么办?
显式等待:等待指定包含/属性更改。当应用程序向系统提供AJAX调用并获取动态数据并在UI上呈现时,会使用更多。在这种情况下WebDriverWait
是合适的。
添加回答
举报
0/150
提交
取消