我正在尝试等待驱动程序等待,直到找到同一类的所有元素为止。
例如:
如果班级是foo
我尝试:
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CLASS_NAME, 'foo')))
我认为这只等待该类中第一个出现的元素。任何人都知道如何才能等到该类的所有元素都找到。
答案 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