Selenium 隐式等待是否像显式等待一样每500毫秒轮询一次DOM?

Selenium 隐式等待是否像显式等待一样每500毫秒轮询一次DOM?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我已经阅读了所有关于隐性和显性等待的帖子。我真的很抱歉再次发布这个问题,但是现有的帖子都没有回答我的问题,或者我没有正确理解这个概念 我能够理解显式等待的概念,但我真正不理解的是语句“隐式等待是告诉Web驱动程序在试图查找一个或多个元素时轮询DOM一段时间,如果它们不立即可用。”这是否意味着Web驱动程序每500毫秒轮询一次DOM以查找元素(直到它成功返回),就像显式等待一样?如果是,它如何增加执行时间 PS:很抱歉再次发布这个问题,正如我告诉你的,有很多文章提供了不同的信息,这让我很困惑。隐式

我已经阅读了所有关于隐性和显性等待的帖子。我真的很抱歉再次发布这个问题,但是现有的帖子都没有回答我的问题,或者我没有正确理解这个概念

我能够理解显式等待的概念,但我真正不理解的是语句
“隐式等待是告诉Web驱动程序在试图查找一个或多个元素时轮询DOM一段时间,如果它们不立即可用。”
这是否意味着Web驱动程序每500毫秒轮询一次DOM以查找元素(直到它成功返回),就像显式等待一样?如果是,它如何增加执行时间


PS:很抱歉再次发布这个问题,正如我告诉你的,有很多文章提供了不同的信息,这让我很困惑。

隐式等待将迫使驱动程序在页面上的任何元素不立即可见时等待指定的时间。因此,隐式等待将隐式地等待指定的时间,等待所有不立即可见的元素,从而大幅增加执行时间。在指定的时间过后,如果元素可见,那么它将开始执行。隐式等待中没有轮询

而在显式等待中,它将等待直到满足一个条件。如果条件满足,它将停止等待并开始执行。在这种情况下,它将轮询500毫秒以检查状况


希望这能澄清您的问题。

我认为隐式等待更关注需求,比如,如果元素在屏幕上显示几秒钟,我们就可以了。这是我们必须等待的时间。隐式的默认等待时间为零。若我们不声明,那个么它将抛出元素NotFound异常。(最好多出几秒钟,以降低互联网速度,降低应用程序响应速度)

我创建了一个场景,实际上我们可以确认隐式等待连续检查DOM(您可以调用轮询):

执行post条件,如验证文本,而不执行先前的条件,如提交按钮。由于我们没有通过脚本单击按钮selenium找不到元素,它仍然不会抛出element not Found异常,并等待5分钟(隐式等待集)完成

然后,我会在1分钟内点击按钮,在网页上显示文本。该步骤立即通过,并继续执行其余的执行。这确认了-implicit wait正在间歇性地轮询DOM,否则它应该等待5分钟来检查元素(但没有发生)


说到轮询间隔-根据我的观察,这段时间不到一秒

请看一下@TechDog,它是否需要整个隐式等待时间,或者在成功返回时停止,就像显式等待一样?根据我的理解,当它成功返回时停止…太棒了…谢谢你…我也在找同样的。。