selenium - 使用 contains(node()) AND contains(@attribute) 通过 xpath 查找元素
问题描述
我试图通过检查innerHTML(属性节点())和一些属性(例如@class)来定位一个元素。两种方法单独工作,但我不能将它们与“和”结合使用
HTML部分:
<tr class="tableRow1">
<td nowrap="" class="ct">
<input type="CheckBox" name="RowKey" tabindex="17" value="15635">
<img src="/tm/images/1pixel.gif" style="height:9px;width:9px;border:0" name="RowIndicator">
</td>
<td class="lt" title="ID">XXXXX</td><nobr>0021234567</nobr><td class="rt">1.00</td>
</tr>
所以我需要通过捕捉这部分来定位class="tableRow1"的这个节点(来自许多其他节点):
<nobr>002123456</nobr>.
这两个有效(但捕获了几个元素):
.find_element_by_xpath('//tr[contains(node(), "0021234567")]')
.find_element_by_xpath('//tr[contains(@class, "Row")]')
这个没有:
.find_element_by_xpath('//tr[contains(node(),"0021234567") and contains(@class,"Row")]')
解决方案
试试这个 XPath-1.0 表达式:
descendant::*[contains(node(), "0021234567")]/ancestor::tr[contains(@class, "Row")][1]
或在完整的说明中
.find_element_by_xpath('descendant::*[contains(node(), "0021234567")]/ancestor::tr[contains(@class, "Row")][1]')
该指令选择包含 value的(全局)的第一个tr
祖先 - 它具有包含class
value 的属性。Row
node()
0021234567
推荐阅读
- batch-file - 列出具有特定扩展名的目录和文件数量,构建特定菜单
- python - 是否可以 typedef 一个函数?
- python - 更有效的方法:按变量分组的许多列的 value_counts (in %)
- c# - 声纳云导致构建失败
- django - “NoneType”对象没有属性“id”。Django 管理员
- python - graph_tool 中的收缩顶点
- unix - 使用 awk 在文件开头添加列
- unity3d - 如何在 Unity3d 中击中对象之前稍微结束光线投射?
- reactjs - TS7016:找不到模块“my-module”的声明文件,但声明了类型
- android - lStar 上的资源链接失败