12

根据 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,我的方法也会正确完成)

4

1 回答 1

8

简短的回答:

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

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

于 2012-12-21T06:43:27.343 回答