#python #selenium
#python #селен
Вопрос:
Я использую этот код, чтобы нажать на кнопку на странице с selenium:
document.getElementsByClassName('pv-profile-section__text-truncate-toggle')[0].click()
На некоторых страницах есть эта кнопка, а на некоторых нет. Ошибки возникают на страницах, где эта кнопка не существует. Как я могу предотвратить возникновение этой ошибки? Например, условие для проверки, есть ли эта кнопка на странице или нет.
Ответ №1:
Поместите его в блок try:
try:
document.getElementsByClassName('pv-profile-section__text-truncate-toggle')[0].click()
except Exception as e:
error = e
Ответ №2:
Вы можете сделать это с NoSuchElementException
помощью или проверить, не является ли список, возвращаемый с помощью find_elements_by_class_name
, пустым:
from selenium.common.exceptions import NoSuchElementException
def click_if_exists(class_name: str):
try:
driver.find_element_by_class_name(class_name).click()
except NoSuchElementException:
print(f'{class_name} element does not exist')
click_if_exists('SomeRandomClass')
# SomeRandomClass element does not exist
def click_if_exists(class_name: str):
found_elements = driver.find_elements_by_class_name(class_name)
if found_elements:
found_elements[0].click()
else:
print(f'{class_name} element does not exist')
click_if_exists('SomeRandomClass')
# SomeRandomClass element does not exist