Webdirverwait并发等待多个元素
时间: 2023-06-13 21:02:18 浏览: 91
如果您想同时等待多个元素,可以使用 `ExpectedConditions` 类中的 `presence_of_all_elements_located` 方法。这个方法将等待所有指定的元素都存在于页面上,然后返回一个元素列表。
以下是一个例子,演示如何使用 `WebDriverWait` 并发等待多个元素:
```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
# 打开页面
driver.get("https://www.example.com")
# 等待所有指定元素都存在于页面上
wait = WebDriverWait(driver, 10)
elements = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".my-class")))
# 遍历元素列表
for element in elements:
# 处理每个元素
pass
# 关闭浏览器
driver.quit()
```
在上面的例子中,我们使用 `By.CSS_SELECTOR` 指定了要查找的元素的 CSS 选择器,然后使用 `presence_of_all_elements_located` 方法等待它们的出现。等待时间为 10 秒钟。一旦所有指定的元素都出现在页面上,`wait.until` 方法就会返回一个元素列表,然后我们就可以遍历这个列表并处理每个元素了。
请注意,如果您的元素列表是动态的,即元素的数量可能会随时间而变化,那么您可能需要使用其他方法来处理它们,例如 `visibility_of_all_elements_located` 或 `element_to_be_clickable`。
阅读全文