Selenium隐式等待与Thread.sleep()

时间:2012-12-20 15:37:26

标签: dom selenium-webdriver

根据selenium,隐式等待轮询DOM一段时间以查看元素是否显示。我的理解是,它将轮询到指定的时间,但如果之前显示一个元素,那么它将继续而无需再等待。

http://seleniumhq.org/docs/04_webdriver_advanced.html

我有一个在大约13秒内运行的方法。当我将隐式等待设置为100秒时,需要213秒。

driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);

似乎在这种方法中,我等了2次(每次100秒)。将隐式等待设置为0或100不会影响我的方法。在这两种情况下,它们都能正确完成。

我的问题是这个。我认为隐式等待等待元素显示的最短时间。这是正确的吗?或者我做错了什么?

此外,为什么它等待2次,显然不需要等待? (即使我将等待设置为0,我的方法也能正确完成)

1 个答案:

答案 0 :(得分:4)

简短回答:

隐式等待 - 它适用于所有元素的全局设置,如果元素在指定时间之前出现,则脚本将开始执行,否则脚本将抛出NoSuchElementException。在setup方法中使用的最佳方法。仅影响By.findelement()

Thread.sleep() - 它将为脚本休眠时间,而不是在脚本中使用的好方法,因为它无条件地睡眠。