我们声明了 10 秒的隐式等待,但一个元素需要更多时间,比如 20 秒,有时可能会出现 5 秒,所以在这种情况下,声明了显式等待。
任何时候隐式等待不要等待默认时间,一旦元素可见,它将停止等待
我们声明了 10 秒的隐式等待,但一个元素需要更多时间,比如 20 秒,有时可能会出现 5 秒,所以在这种情况下,声明了显式等待。
任何时候隐式等待不要等待默认时间,一旦元素可见,它将停止等待
混合隐式等待和显式等待通常是不好的做法——相反,如果可能的话,你应该坚持做其中一个,而不是两个都做。
根据您描述的问题-您可以将隐式等待时间增加到 30 秒以考虑较长的加载时间,即使元素仅需要 5 秒的加载时间,等待也会完成。
我更喜欢显式等待,因为我也可以执行否定等待。有时,我想等到某个元素在页面上不可见。使用显式等待,一旦元素消失,我的等待就完成了。但是,使用隐式等待,您将不得不等待整整 30 秒才能知道元素是否已消失。
selenium webdriver 中隐式等待和显式等待的区别:
隐式等待
应用于整个页面
一旦您声明了隐式等待,它将在 Web 驱动程序实例的整个生命周期中可用
建议等待
隐式等待适用于网页上的所有网页元素
不涉及条件
仅检查是否存在 Web 元素
显式等待
应用于元素
如果我们希望执行等待一段时间直到达到某个条件,它将被使用。
直接表示wait
显式等待可以应用于单个或多个 Web 元素
涉及由 ExpectedCondition 类的静态方法提供的条件
有一定条件的等待期。