@kercha

Невозможность найти элемент по xpath с использованием selenium. Есть мысли?

Столкнулся со следующей проблемой. Нужно найти элемент и кликнуть на него. Проблема следующего характера: веб построен на Ember.js соотвественно каждый элемент имеет динамический id. Пытался найти элемент по тексту в классе, однако все равно фейлится.

частичка кода сайта:
<a href="javascript:void(0)" class="link" data-ember-action="" data-ember-action-574="574">Зарегистрироваться</a>


Мой код:

registration = browser.find_element_by_xpath('//*[@class='link' and text()='Зарегистрироваться']').click()


Перерыл Гугл, кто то говорит что вообще невозможно тестировать приложения построенные на Ember, кто то предлагает лютую дичь с поиском по полному пути xpath, что не работает тоже.
  • Вопрос задан
  • 1500 просмотров
Решения вопроса 1
alekciy
@alekciy
Вёбных дел мастер
//*[contains(@class, "link")][contains(text(), "Зарегистрироваться")]

Кроме того элемента может не быт в DOM на момент запроса, поэтому нужно сначала сделать wait.until(visibility_of_element_located) как тут например: How to wait for elements in Python Selenium WebDriver
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
Сегодня на хабр статейку подвезли, посмотрите, может поможет - Функции XPath для динамических XPath в Selenium
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы