硒等待所有类元素

时间:2020-07-31 19:12:08

标签: python selenium web-scraping webdriverwait expected-condition

我正在尝试等待驱动程序等待,直到找到同一类的所有元素为止。

例如:

如果班级是foo

我尝试:

WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CLASS_NAME, 'foo')))

我认为这只等待该类中第一个出现的元素。任何人都知道如何才能等到该类的所有元素都找到。

1 个答案:

答案 0 :(得分:2)

WebDriverWait不符合预期条件,因为presence_of_element_located()将等待最先匹配的WebElement

要等到同一个类的所有元素,例如存在 foo class ,而不是presence_of_element_located(),您需要为WebDriverWait引入presence_of_all_elements_located(),您的有效代码块将是:

WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'foo')))

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC