Selenium выберите первую кнопку, которая содержит соответствие текста - PullRequest
0 голосов
/ 28 мая 2019

Я использую веб-драйвер Firefox для Selenium, чтобы очистить веб-страницу, которая, как представляется, будет отображаться с помощью React на стороне клиента.Классы в визуализированном DOM выглядят динамически генерируемыми и, похоже, меняются с каждым новым запросом.На странице также имеется множество элементов кнопок, некоторые из которых отсутствуют в окне просмотра.Поэтому моя стратегия состоит в том, чтобы найти способ нажать на кнопку, содержащую текст, который я ввожу с использованием селена.Несколько кнопок будут содержать текст, и я хочу просто найти первую такую ​​кнопку.

Используя selenium / xpath, как бы я выбрал первую кнопку, содержащую текст E9 1QJ?

<button>
    <div><svg ...> </div>
    <div>
        <div>London</div>
        <div>E9 1QJ</div>
    </div>
</button>

<button>
    <div><svg ...> </div>
    <div>
        <div>London Foo Bar</div>
        <div>E9 1QJ</div>
    </div>
</button>

Спасибо

1 Ответ

1 голос
/ 28 мая 2019

Это должно работать:

{driver}.find_element_by_xpath("//button[div/div[text()='E9 1QJ']][1]") 

Но имейте в виду, что подобное решение не очень гибкое и может сломаться при минимальном изменении структуры HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...