Невозможно найти элемент (Selenium, Java)

Я пытаюсь использовать следующий элемент:

<span data-dojo-attach-point = "lN" role = "btn" aria-selected = "false" class = "xTreeNLbl">Find</span>

Ниже приведен код Java:

private WebElement search_btn = driver.findElement(By.xpath("//div[@data-dojo-attach-point='lN' and contains(text(),'Find')"));
search_btn.click();

Невозможно найти элемент. Пожалуйста помоги. Спасибо.

Xpath = // span [text () = 'Find'] использовать этот xpath

Dhru 'soni 30.10.2018 06:42

Я предполагаю, что data-dojo-attach-point = "lN" меняется при каждом обновлении. Можешь подтвердить?

JeffC 30.10.2018 16:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
236
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

вы ошибаетесь в xpath //div
поскольку это тег <span>, а не тег <div> ты должен написать вот так,

driver.findElement(By.xpath("*//span[text()='Find']")).click();

Один из вариантов может заключаться в том, чтобы попытаться найти элемент, используя один из его атрибутов, например его класс, если он уникален. Взято из этого предыдущего вопроса (Найти элемент по атрибуту), формула:

element[attribute='attribute-value']

Итак, если у вас есть,

<a href = "mysite.com"></a>

Вы можете найти его, используя:

By.cssSelector("a[href='mysite.com']");

Пожалуйста, попробуйте следующий код:
//span[@role='btn' and @class='xTreeNLbl']

Если этот код не решает вашу ошибку, передайте мне код HTML страницы, и я помогу.

Ваш xpath почти правильный, вам просто нужно исправить имя тега с помощью Span

driver.findElement(By.xpath("//span[@data-dojo-attach-point='lN' and contains(text(),'Find')"));

Другие вопросы по теме

Исключение в потоке "main" org.openqa.selenium.WebDriverException: не удалось подключиться к двоичному файлу FirefoxBinary с помощью webdriver.firefox.marionette
Использование WebDriverWait по-прежнему не может получить новый источник_страницы при выполнении теста следующей_страницы
Log4j: WARN Не удалось найти дополнения для регистратора / Пожалуйста, правильно инициализируйте систему log4j при выполнении тестов через Selenium в Eclipse
Python - как однозначно идентифицировать идентификаторы реакции js в Xpath для нескольких выпадающих списков python selenium?
Попробуйте получить элемент <li> по xpath с помощью селена, но получите сообщение: элемент не взаимодействует
Selenium и Python, получить дочерний элемент динамического src при использовании XPATH
Как дождаться комбинации CSS и селектора XPath в Python WebDriver?
Ввод значений нажатием клавиш в selenium-webdriver javascript
Взять текст в интервале данных значок селен vba
Вопрос о Selenium: найти элемент по тексту его дочерней ссылки