Ссылка, которую я хотел бы щелкнуть, вводится пользователем. Например пользователь вводит для переменной дорожки, «Тампа-Бэй Даунс»Как получить Python и Selenium, чтобы щелкнуть ссылку angularjs, сопоставляя ссылку с текстом ввода пользователя?
Мой питон тест Селен программа будет искать код ниже:
<a ng-click="updateFavorite()(raceInfo.trackAbbr); $event.stopPropagation();">EV
i class="my-icon-favorite-fill my-icon-favorite-fill_active" ng-class="{
'my-icon-favorite-fill' : !showActionFeedback, ...onFeedback, 'rotating spinner' :
showActionFeedback}" update-favorite-action-feedback="" qa-label="race-favorite-icon">
::before
</i>
</a>
<span class="ng-binding" ng-bind="::raceInfo.trackName" qa-label="race-track-name">
Tampa Bay Downs</span>
</td>
Успешный код будет найти входные слова «Tampa Bay Downs », а затем щелкните по нему, чтобы активировать действие angularjs, которое приведет к открытию отдельной страницы, что является желаемым действием.
Я попытался найти ссылку, используя правильный xpath без успеха.
Я также попытался это, но безуспешно:
try:
element = driver.find_element_by_css_selector("a[qa-label="+track+"]")
except:
print "error finding css selector for track"
Вы можете попробовать xpath с '" // span [содержит (., '{}')]/Previous-sibling :: a ".format (track)' или использовать имя класса, чтобы быть более конкретным " // span [@ qa-label = 'race-track-name' и содержит (., '{}')]/previous-sibling :: a ".format (track)' –
Также не используйте обложки, кроме операторов , поймайте то, что вы ожидаете. –
Спасибо за быстрый ответ (и предложение) Padraic, я даю вам попробовать. – klitz1967