如果我有
<div>
<a>
<table>
<tr>
<td value="val">
Run Code Online (Sandbox Code Playgroud)
如果我想选择包含 atd的avalue="val",我该怎么做?
我已经测试过:
//td[@value="val"]
Run Code Online (Sandbox Code Playgroud)
但是我获取的是td节点,我想获取的是a节点。如何使用 XPath 实现这一目标?
您可以使用以下任一选项。
//td[@value="val"]/ancestor::a
^
td with value val
^
ancestor link
Run Code Online (Sandbox Code Playgroud)
或者
在这种情况下首选 xpath
//a[.//td[@value="val"]]
^
Get me any link which have td with value as val.
Run Code Online (Sandbox Code Playgroud)
或者
下面的 xpath 现在可以工作,但是当页面发生任何更改时,例如:如果将表移动到 div 中,则此 xpath 将中断。
//td[@value="val"]/parent::tr/parent::table/parent::a
Run Code Online (Sandbox Code Playgroud)
就我个人而言,我至少在这种情况下更喜欢第二个选项,因为它a没有任何特定的属性。并将ancestor::a选择作为 td 祖先的任何链接。
| 归档时间: |
|
| 查看次数: |
13357 次 |
| 最近记录: |