Selenium WebDriver中的隐式等待和显式等待之间有什么区别? [重复]

问题描述 投票:22回答:6

Selenium WebDriver中有隐式和显式等待。它们之间有什么区别?

请分享有关Selenium WebDriver的知识。请显示带有隐式和显式等待的实时示例。

java selenium selenium-webdriver
6个回答
16
投票
隐式等待-

隐式等待基本上是您告诉WebDriver延迟的一种方式,您希望看到该延迟,以了解WebDriver所寻找的指定Web元素是否不存在。因此,在这种情况下,您要告诉WebDriver在UI(DOM)上指定的元素不可用的情况下,它应该等待10秒。

明确等待

-

显式等待是仅限于特定Web元素的智能等待。使用显式等待,您基本上是在最大程度上告诉WebDriver在放弃之前等待X单位时间。


13
投票
1)在webDriver对象的整个持续时间内设置了隐式等待。假设您要等待一定的时间,比方说在网页上的每个元素或很多元素加载之前的5秒钟。现在,您不想一次又一次地编写相同的代码。因此,隐式等待。但是,如果只想等待一个元素,则使用显式。

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


8
投票

隐式等待:创建后,它一直存在,直到WebDriver对象死亡。而且就像所有操作一样。

而可以针对特定操作声明Explicit wait,具体取决于webElement的行为。它具有自定义轮询时间和条件满足的好处。例如,我们声明了10秒的隐式等待,但是元素花费的时间更多,例如20秒,有时可能会出现5秒,因此在这种情况下,声明了显式等待。


2
投票
显式等待用于中止执行,直到满足特定条件的时间或经过最大时间为止。与隐式等待不同,显式等待仅适用于特定实例。

1
投票

Implicit Wait:如果设置了wait,它将为每个findElement / findElements调用等待指定的时间。如果操作未完成,它将引发异常。

Explicit Wait:如果设置了wait,它将在提供的条件变为true时等待并继续进行下一步,否则它将在等待指定的时间后引发异常。显式等待仅在指定的位置适用一次。

© www.soinside.com 2019 - 2024. All rights reserved.