Man*_*dan 28

检查以下链接:

  • Implicit Wait - 它通过轮询DOM指示Web驱动程序等待一段时间.一旦声明了隐式等待,它将在Web驱动程序实例的整个生命周期中可用.默认情况下,该值为0.如果设置较长的默认值,则行为将定期轮询DOM,具体取决于浏览器/驱动程序实现.

  • Explicit Wait+ ExpectedConditions- 这是自定义的.如果我们希望执行等待一段时间直到某些条件实现,它将被使用.

  • 通过"轮询DOM",他只是意味着"定期再次读取dom以检查重新加载".轮询行为取决于特定的驱动程序/浏览器实现,但它通常类似于隐式等待的每0.5秒(如果您将隐式等待设置为~1s或更高) (3认同)
  • "轮询DOM"是什么意思?我对"民意调查"的行为感到困惑.谢谢 (2认同)

Sat*_*h D 15

隐含等待 -

隐式等待基本上是告诉WebDriver如果WebDriver没有找到指定的web元素而要查看的延迟的方式.所以在这种情况下,你告诉WebDriver,如果在UI(DOM)上没有指定的元素,它应该等待10秒.

明确的等待 -

显式等待是限于特定Web元素的智能等待.使用显式等待你基本上是告诉WebDriver它最多是在它放弃之前等待X个单位的时间.


Anc*_*wal 13

区别:

1)为webDriver对象的整个持续时间设置隐式等待.假设您要等待一定的持续时间,假设在每个元素或网页上的大量元素加载之前5秒.现在,您不希望一次又一次地编写相同的代码.因此,隐含等待.但是,如果您只想等待一个元素,请使用explicit.

2)您不仅需要显示Web元素,还需要可点击或满足Web元素的某些其他属性.这种灵活性只能通过明确的等待来提供.如果在网页上加载动态数据,则特别有用.您可以使用显式等待来等待开发该元素(而不仅仅是在DOM上显示).


小智 8

为上述解决方案增加另一种观点.

隐式等待:创建时,直到WebDriver对象死亡为止.并且对所有操作都很常见.

然而,可以根据webElement行为为特定操作声明显
式等待.它具有定制轮询时间和满足条件的好处.
例如,我们声明隐式等待10秒,但是一个元素需要更多,比如说20秒,有时可能会在5秒内出现,因此在这种情况下,会声明显式等待.