我想点击的链接是用户输入的。例如,用户输入变量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
,使用 preceding-sibling 来查找包含轨道名称的 span 标记之前的 a
,即 >坦帕湾唐斯:
"//span[contains(.,'{}')]/preceding-sibling::a".format(track)
或者更具体地说,使用跨度类名称:
"//span[@qa-label='race-track-name' and contains(.,'{}')]/preceding-sibling::a".format(track)
我是一名优秀的程序员,十分优秀!