Selenium隐式等待与Thread.sleep()

Ste*_*ven 6 dom selenium-webdriver

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

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

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

driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ana*_*ani 5

简短答案:

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

Thread.sleep() -脚本会休眠,不是在没有条件的情况下在脚本中使用的好方法。