Я пытаюсь использовать следующий элемент:
<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();
Невозможно найти элемент. Пожалуйста помоги. Спасибо.
Я предполагаю, что data-dojo-attach-point = "lN" меняется при каждом обновлении. Можешь подтвердить?




вы ошибаетесь в 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')"));
Xpath = // span [text () = 'Find'] использовать этот xpath