[AngularJS]Python 和硒通过匹配用户输入文本的链接单击 angularjs 链接会怎样?

发布时间: 2017/4/16 14:14:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要单击的链接是由用户输入。 例如用户输入的变量跟踪,"坦帕湾起伏"

我的 python 硒测试程序将搜索下面的代码︰

<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>

成功的代码将查找输入的词语"坦帕湾起伏",然后单击它要激活 angularjs 操作将会导致单独打开的页,这是所需的操作。

我试图找到链接使用正确的 xpath,但没有成功。
我也吃过这个,但没有成功︰

try:
    element = driver.find_element_by_css_selector("a[qa-label="+track+"]")
except:
    print "error finding css selector for track"

解决方法 1:

您可以选择使用 xpath 使用前同辈查找 a 之前包含轨道名称即坦帕湾起伏的 span 标记︰

"//span[contains(.,'{}')]/preceding-sibling::a".format(track) 

或更多的具体使用跨类名称︰

 "//span[@qa-label='race-track-name' and contains(.,'{}')]/preceding-sibling::a".format(track) 
赞助商