Как написать вложенное выражение xpath на основе других элементов в div?
Мне нужно найти кнопку с помощью xpath и попробовать использовать вложенное выражение xpath.
Я использовал выражение
@FindBy(xpath="//*/button[contains(text(),'FOO')]")
чтобы найти экземпляры других кнопок в другом месте кода, и до сих пор это работает нормально. однако мой код динамически создает несколько экземпляров кнопки "Добавить" на странице, и иногда эти кнопки добавления невидимы
Можно ли написать выражение Xpath, которое может найти кнопку с текстом "Добавить", которая находится внутри div
что имеет h1
содержащий текст "панель видна"?
Вот отредактированная версия HTML, поскольку это в настоящее время существует
<div class="foo1">
<div class="foo2">
<div class="foo3">
<div class="foo4">
<div class="foo5">
<h1 >New Contact</h1>
</div>
<div >
<div >
<div >
<span >
<button >Add</button>
</span>
2 ответа
Это сработало, но тесно связано
@FindBy(xpath="//h1[contains(text(), 'Panel visible')]/../../..//button[contains(text(), 'Add')]")
Это был лучший ответ и более слабый
(xpath="//*[contains(concat(' ', @foo, ' '), ' foo_container ')][descendant::h1[contains(text(), 'Panel visible')]]//button[contains(text(), 'Add')]")
Попробуй это:
//div/h1[contains(text(), 'panel visible')]/button[contains(text(), 'Add')]