文档中写道:
隐式等待是告诉WebDriver在尝试查找元素或多个元素时,如果它们不立即可用,要轮询DOM一定的时间。
子问题:
在使用find_elements_by_
(复数)的情况下,implicit_wait
会等待多少个元素存在后才继续执行脚本?或者implicit_wait
只适用于find_element_by_
(单数)?如果是这样,那么文档中的“或元素”是什么意思?
从一个SO答案中我读到最好不要在同一个脚本中同时使用隐式和显式等待,我注意到这一点,因为我希望测试尽可能健壮。
既然我知道肯定会用到 WebDriverWait
,那么这是否意味着我需要在我的 unittest
的 setUp
方法中摆脱 implicit_wait
,并且每次使用任何 find_element_by_
方法时都要使用 WebDriverWait
?
(我宁愿不这样做;虽然我可以将每个 find_element_by_
方法放在自己的自定义函数中 - 每个都包装在自己的 WebDriverWait
中 - 但感觉不应该这样做)。
所以我的主要问题是:
我能否保留我的测试 setUp
方法中的 implicit_wait
,然后只在我知道需要它的 find_elements_by_
和其他地方使用 WebDriverWait
?
WebDriverWait
。Selenium不知道在元素可用之前你需要等待多久,这就是为什么有这个选项的原因。此外,隐式等待将一直等到找到该元素。找到元素并不等于元素可用。 - Arranimplicitly_wait
在 API 中存在!你如何检查元素是否可用?我看到了expected_conditions.element_to_be_clickable
,但不确定还能用什么其他方式。 - KnewB