Selenium: не удается найти элемент с помощью XPATH Python

#python-3.x #selenium #selenium-chromedriver

#python-3.x #selenium #selenium-chromedriver

Вопрос:

Я немного новичок в программировании, но python действительно попал в него. Я пытаюсь создать программу, которая автоматически проверяет наличие обновлений на веб-сайте. Я успешно реализовал необходимый код для вызова страницы регистрации, но все же есть один элемент, который не может быть найден. Поскольку мне приходится делать это для нескольких курсов и перебирать их, конкретного идентификатора нет, я попытался найти его по названию, но и это не сработало. Есть ли способ найти кнопку с заголовком «зарегистрироваться».

Я пробовал

 driver.find_element_by_xpath("//a[@title ='enroll']").click()
  

но это не сработало, и я всегда получаю

NoSuchElement

ошибка.

XPATH для кнопки просто: //*[@id="id572"]

Вот часть HTML-кода:

Ответ №1:

На скриншоте предоставленного вами HTML-кода элемент is <button> , not <a> .

Попробуйте это выражение xpath //button[@title='enroll']

Комментарии:

1. это сработало с driver.find_element_by_xpath(«//* [@title=’enroll’]»)

2. @cannik Если в моем рабочем коде я предпочитаю использовать button , а не * . Чем точнее информация, тем лучше точно находить элементы.

Ответ №2:

Это должно сделать это, если его нет ни в одном iframes. Просто возьмите кнопку с заголовком «зарегистрироваться» и нажмите. Ваш css-селектор был тегом a, и он может динамически получать идентификатор.

 driver.find_element_by_css_selector("button[title ='enroll']").click()