[英]How do I get Python and Selenium to click an angularjs link by matching the link to user input text?
我想点击的链接是用户输入的。 例如,用户输入变量track ,“Tampa Bay Downs”
我的 python selenium 测试程序将搜索以下代码:
<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
-sibling选择使用xpath
来查找包含曲目名称的span 标签之前的a
,即Tampa Bay Downs :
"//span[contains(.,'{}')]/preceding-sibling::a".format(track)
或者更具体地说,使用 span 类名:
"//span[@qa-label='race-track-name' and contains(.,'{}')]/preceding-sibling::a".format(track)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.