提问者:小点点

为什么我不能为页面中的多个元素使用WebDriver等待Selenium Web驱动程序?


我正在尝试使用Selenium提取一些数据,如下所示:

elements = len(driver.find_elements_by_class_name('busca-left-container'))

for n in range(elements):

year = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "ano")))
year = int(year[n].text)
year_list.append(year)

我发现的问题是wait.到函数只等待类名为('ano')的页面的第一个元素,所以我无法迭代这个WebElement(每页有10个'ano'元素)

我发现的一种解决方案是使用以下代码:

year = driver.find_elements_by_class_name('ano')
year = int(year[n].text)
year_list.append(year)

但它并没有给我“等待”的功能,直到元素可见。

有什么解决方案吗?(使用等待函数并在加载所有元素时检索列表)。谢谢!


共1个答案

匿名用户

使用visibility_of_all_elements_located()将给出元素列表。

elements = len(driver.find_elements_by_class_name('busca-left-container'))

for n in range(elements):

    year = wait.until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "ano")))
    year = int(year[n].text)
    year_list.append(year)