-1

我们声明了 10 秒的隐式等待,但一个元素需要更多时间,比如 20 秒,有时可能会出现 5 秒,所以在这种情况下,声明了显式等待。

任何时候隐式等待不要等待默认时间,一旦元素可见,它将停止等待

4

2 回答 2

1

混合隐式等待和显式等待通常是不好的做法——相反,如果可能的话,你应该坚持做其中一个,而不是两个都做。

根据您描述的问题-您可以将隐式等待时间增加到 30 秒以考虑较长的加载时间,即使元素仅需要 5 秒的加载时间,等待也会完成。

我更喜欢显式等待,因为我也可以执行否定等待。有时,我想等到某个元素在页面上不可见。使用显式等待,一旦元素消失,我的等待就完成了。但是,使用隐式等待,您将不得不等待整整 30 秒才能知道元素是否已消失。

于 2019-10-11T16:34:49.930 回答
0

selenium webdriver 中隐式等待和显式等待的区别:

隐式等待

应用于整个页面

一旦您声明了隐式等待,它将在 Web 驱动程序实例的整个生命周期中可用

建议等待

隐式等待适用于网页上的所有网页元素

不涉及条件

仅检查是否存在 Web 元素

显式等待

应用于元素

如果我们希望执行等待一段时间直到达到某个条件,它将被使用。

直接表示wait

显式等待可以应用于单个或多个 Web 元素

涉及由 ExpectedCondition 类的静态方法提供的条件

有一定条件的等待期。

于 2019-10-11T19:20:15.977 回答