Передача в переменную для поиска элементов с помощью xpath - PullRequest
0 голосов
/ 23 апреля 2020

Я занимаюсь этим программированием для выполнения некоторых задач автоматизации в python с селеном. Пользователю предлагается ввести имя своего проекта. Затем программа откроет веб-сайт и выберет проект с тем же именем, что и введенный пользователем. Я собираюсь выбрать элемент, используя xpath. Однако, если на сайте много проектов, все они имеют одинаковый class. Поэтому я подумал, что могу использовать xpath для выбора класса, но передать //text(user_sproject_name_here). Вот xpath, который у меня есть, и html, который я пытаюсь выбрать.

HTML Элементы (оставив href пустым, потому что не получится, как я хочу, чтобы программа была, если я ее использую) :

<a href = "" class = "js-filter-text">
                            Test_1

<a href = "" class = "js-filter-text">
                            Test_2
</a>

Например, текст, который я хотел найти, это «Test_1», но пользователь мог ввести это, и он мог выбрать правильный элемент на основе текста.

Вот что у меня есть для xpath. Я не знаю, как передать переменную для //text()

element3 = driver.find_elements_by_xpath('//a[@class= "js-filter-text"]//text()' ).click()

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

попробуйте

driver.find_element_by_xpath("//a[@class= "js-filter-text"]//text(),' " + variablename + " '')
0 голосов
/ 23 апреля 2020

Если я правильно понимаю вашу проблему, я думаю, что должно работать следующее:

element3 = driver.find_elements_by_xpath('//a[@class="js-filter-text" and contains(text(), "{}")]'.format(input_variable)).click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...