javascript - 如何让 Python 和 Selenium 通过将链接与用户输入文本匹配来单击 angularjs 链接?

标签 javascript jquery python angularjs selenium

我想点击的链接是用户输入的。例如,用户输入变量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) 

关于javascript - 如何让 Python 和 Selenium 通过将链接与用户输入文本匹配来单击 angularjs 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36118821/

相关文章:

python - 如何将行号列添加到 SqlAlchemy 查询?

javascript - 为什么我必须使用 $(this)?

javascript - jQuery:将匿名回调重写为命名函数

javascript - 将 JSON 从文本字段解析为对象数组

python - Pygame 找不到所需的字体

javascript - 单击时平滑地扩展输入字段宽度

javascript - Jquery,如果 div 存在但仅来自列表中的该元素,则更改边框

javascript - 循环构建菜单链接时检查是否有状态

javascript - 如何知道使用 jQuery 单击事件的是哪种类型的 Html 对象?

python - Python 3 中的最大元组数组大小是多少?