根据 selenium 的说法,隐式等待会在一定时间内轮询 DOM 以查看元素是否出现。我的理解是,它将轮询指定的时间,但如果之前出现过某个元素,那么它将继续,而无需进一步等待。
http://seleniumhq.org/docs/04_webdriver_advanced.html http://seleniumhq.org/docs/04_webdriver_advanced.html
我有一个方法,运行时间大约为 13 秒。当我将隐式等待设置为 100 秒时,需要 213 秒。
driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
看来在这个方法中,我等待了 2 次(每次 100 秒)。将隐式等待设置为 0 或 100 不会影响我的方法。在这两种情况下,它们都正确完成。
我的问题是这样的。我认为隐式等待会等待元素出现的最短时间。这是正确的吗?或者我做错了什么?
此外,为什么它明明不需要等待却要等待两次? (即使我将等待设置为 0,我的方法也能正确完成)
简短回答:
隐式等待 - 它是适用于所有元素的全局设置,如果元素在指定时间之前出现,则脚本将开始执行,否则脚本将抛出NoSuchElementException
。在设置方法中使用的最佳方法。只影响By.findelement()
.
Thread.sleep()
- 它将让脚本休眠,这不是在脚本中使用的好方法,因为它是无条件休眠的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)