Как мне найти эти конкретные элементы на веб-странице с помощью селена с помощью chromedriver? - PullRequest
0 голосов
/ 23 мая 2019

У меня есть веб-сайт, который я пытаюсь автоматизировать, но я не могу найти конкретную ссылку с селеном, чтобы нажать на нее. Это выглядит как ссылка на веб-сайте, но когда я использую хромированную функцию "осмотреть", похоже, что это может быть кнопка (???). Я пытался скопировать Xpath, но это не работает.

Вот HTML-код ссылки

<button ng-bind-html="::ListingCtrl.copy.planListing.noPreference" track="No Preference" ng-click="::ListingCtrl.enterNoPreference()" class="link ally-focus-within">No Preference</button>

Xpath для него

//*[@id="mainContent"]/div/div/div/div[2]/ul/li[1]/h2/button

Текст ссылки «Нет предпочтений», поэтому также попробовал следующее

elem_NoPreference = browser.find_element_by_xpath('//@track=\'No Preference\'')

Но я не уверен, верны ли мои экранирующие символы в кавычках.

Я тоже безуспешно пробовал следующее

elem_NoPreference = browser.find_element_by_link_text('No Preference') <br>
elem_NoPreference = browser.find_element_by_class_name('link ally-focus-within') <br>
elem_NoPreference = browser .find_element_by_css_selector("button[class='link ally-focus-within']           

Я должен упомянуть, что следующее уникально в HTML. Так что, если есть способ найти их с помощью Xpath, было бы полезно

ListingCtrl.copy.planListing.noPreference 
ListingCtrl.enterNoPreference()
track = "No Preference"

Я в своем уме. Любая помощь будет оценена.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Если вы не планируете проводить I18N / L10N тестирование, вы можете придерживаться No Preference текста, в этом случае селектор будет:

//button[text()='No Preference']

enter image description here

другой параметр в основном такой же, но вместо текста он ищет track атрибут HTML :

enter image description here

Дополнительная информация:

0 голосов
/ 23 мая 2019

Попробуйте с этим xpath:

elem_NoPreference = browser.find_element_by_xpath("//button[@track='No Preference']")

или, если вы хотите выбрать элемент по содержащему тексту:

elem_NoPreference = browser.find_element_by_xpath("//button[contains(.,'No Preference')]")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...