根据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,我的方法也能正确完成)
答案 0 :(得分:4)
简短回答:
隐式等待 - 它适用于所有元素的全局设置,如果元素在指定时间之前出现,则脚本将开始执行,否则脚本将抛出NoSuchElementException
。在setup方法中使用的最佳方法。仅影响By.findelement()
。
Thread.sleep()
- 它将为脚本休眠时间,而不是在脚本中使用的好方法,因为它无条件地睡眠。