Почему я не могу использовать WebDriver Wait for Selenium Webdriver для нескольких элементов на странице? - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь извлечь некоторые данные, используя 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.until ожидает только первый элемент страница с именем класса ('ano'), поэтому я не могу перебрать этот WebElement (на странице 10 элементов 'ano')

Одно решение, которое я нашел, использует следующий код:

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

Но это не дает мне возможности «ждать», пока элемент не станет видимым.

Есть ли какое-то решение для этого? (Используя функцию ожидания и получить список, когда все элементы были загружены). Спасибо!

1 Ответ

0 голосов
/ 23 апреля 2020

Используйте 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...