Как создать список всех видимых элементов в классе Python - PullRequest
0 голосов
/ 30 апреля 2018

Я использую Python 3.x Selenium WebDriver, и я делаю цикл for, чтобы пройти все элементы страницы с ограничением длины элементов в классе, а затем вывести число итераций, но он становится все видимым и скрытые элементы, как получить только видимый элемент на странице.

Чтобы получить все элементы из класса, который я использую

showMore = driver.find_elements_by_class_name('getPhotos')

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Вы можете взять список всех элементов (видимых и невидимых) и отфильтровать его до тех, которые являются видимыми. Есть несколько способов сделать это ... вот один.

showMore = driver.find_elements_by_class_name('getPhotos')
onlyVisible = filter(lambda x: x.is_displayed(), showMore)
0 голосов
/ 30 апреля 2018

Лучшим способом удовлетворения ваших требований будет создание списка , вызывающего WebDriverWait с expected_conditions как visibility_of_all_elements_located следующим образом:

showMore = WebDriverWait(driver, 20).until(expected_conditions.visibility_of_all_elements_located((By.CLASS_NAME, "getPhotos")))

Примечание : visibility_of_all_elements_located относится к ожиданию проверки того, что все элементы присутствуют на HTML DOM страницы и являются видимый. Видимость означает, что элементы не только отображаются , но также имеют высоту и ширину , что на больше 0 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...