meg*_*off 2 html firefox xpath
我目前很难找到正确的 xpath 表达式来选择一个输入元素,其中其父/兄弟元素包含特定文本。
在下面的示例中,我想选择“输入”元素,其中在同一tr行中td存在具有特定文本的元素。
我的示例路径- 不返回匹配项
//input[contains(../../../td/text(),"15-935-331")]
Run Code Online (Sandbox Code Playgroud)
源代码
<tr>
<td><a href="xxx" target="_blank">xxxx, yyyyy</a></td>
<td>Mr</td>
<td></td>
<td> 15-935-331</td>
<form id="betreuerModel" action="xxxx" method="POST">
<td class="tRight">
<input value="Bearbeiten" id="bearbeiten" name="bearbeiten" class="submit" title="Bearbeiten" type="submit"/>
</td>
</form>
</tr>
<tr>
// .. next row with same structure
</tr>
Run Code Online (Sandbox Code Playgroud)
contains当给定节点集时,该函数将仅在该节点集中的第一个节点上运行。在你的情况下,它是<td><a href="xxx" target="_blank">xxxx, yyyyy</a></td>。您可以改为重构您的表达式,以便谓词对所有要检查的节点进行contains操作,并且该函数对单个项目进行操作:
//input[../../../td/text()[contains(., "15-935-331")]]
Run Code Online (Sandbox Code Playgroud)
这将获得任何input元素,其中父级的父级的父级包含一个td元素,该元素的文本节点包含 text 15-935-331。
指定这方面的一个也许更简单的方法是使用ancestor::tr[1]/td代替../../../td。
//input[ancestor::tr[1]/td/text()[contains(.,"15-935-331")]]
Run Code Online (Sandbox Code Playgroud)
这将获得tr祖先层次结构中的第一个,并对其进行操作。
| 归档时间: |
|
| 查看次数: |
3950 次 |
| 最近记录: |