2016-09-21 26 views
0

其他人问过这个问题,但有一些答案,但他们没有澄清一个时刻。如果未立即找到元素,则隐式等待将等待指定的时间量,然后在等待指定的时间量后将运行错误。这是否意味着隐式等待会在第一秒钟检查元素,然后等待指定的时间并在最后一秒再次检查?Selenium Webdriver Python - 隐含的等待我不清楚

我知道明确的等待轮询每500毫秒的DOM。如果测试花费更长时间,隐式等待的实际用途是什么?

回答

2

隐含等待是硒的内部。您在初始化时设定一次。然后,每次Web驱动程序试图寻找一个元素时,它都会持续查找该elmemt(有一些轮询),直到“隐式等待”计时器到期。如果找到该元素,则继续执行,否则抛出异常NoSuchElement。所以它在第一秒发现它会从等待循环中出来,否则,如果它在最后一秒没有找到元素,它将会引起怀疑。

显式等待用于需要等待某个条件为真的场景。例如元素的可见性。其范围仅限于该特定通话。

有关更多详细信息和示例,您可以查找Selenium documentation

0

在隐等待驱动程序的情况下,等待直到元素出现在DOM,但在同一时间,它并不能保证内容是可用的。可能未启用元素(如按钮单击)或元素可能没有定义此时的形状。

就我们使用硒而言,我们对页面上的所有元素都不感兴趣。所有元素可能都没有形状。但是DOM中所有元素的存在对于让其他元素正常工作很重要。所以隐含的等待。

使用任何元素时,我们使用显式等待(WebDriverwait)或FluentWait。

相关问题