具有两个不同包含文本的元素的 Xpath
Xpath to an element with two different contains text
我有下一个 HTML 并且我有这个 xpath 来找到 "Show":
xpath=//*[@id="Some_id"]/div/table/tbody/tr/td[contains(text (), "Show")]
它有效,但我需要找到特定项目的 "Show",在 "Main" 项目的这件事上,所以我需要这样的东西:
xpath=//*[@id="Some_id"]/div/table/tbody/tr/td[contains(text (), "Show")]/preceding-sibling::td[contains(text (), "Main")]
但它不起作用。谢谢
<tr class="even">
<td title="Main">
<a href="Stuff_1"><strong>Main</strong></a>
</td>
<td>
text/html
</td>
<td>
Another text
</td>
<td>
Some text here
</td>
<td>
No
</td>
<td>
<a href="Stuff_1_a">Show</a>
</td>
</tr>
你可以试试这个xpath。这将首先 select 一个包含特定 td
的 tr
元素,然后 select 所需的 a
标签。
"//tr[@class='even' and td[@title='Main']]/a[text()='Show']"
编辑: 这个 xpath 适用于 OP
"//*[@id='Some_id']/div[1]/table/tbody/tr[@class='even']/td/a[contains(text (), 'Show')]"
您想在 table 中找到属于 "Main" 行的 "Show"。
这是我会做的
xpath=//td[@title='Main']/following-sibling::td[contains(text(), 'Show')]
关于 xpath 轴的更多信息:http://www.w3schools.com/xsl/xpath_axes.asp
我有下一个 HTML 并且我有这个 xpath 来找到 "Show":
xpath=//*[@id="Some_id"]/div/table/tbody/tr/td[contains(text (), "Show")]
它有效,但我需要找到特定项目的 "Show",在 "Main" 项目的这件事上,所以我需要这样的东西:
xpath=//*[@id="Some_id"]/div/table/tbody/tr/td[contains(text (), "Show")]/preceding-sibling::td[contains(text (), "Main")]
但它不起作用。谢谢
<tr class="even">
<td title="Main">
<a href="Stuff_1"><strong>Main</strong></a>
</td>
<td>
text/html
</td>
<td>
Another text
</td>
<td>
Some text here
</td>
<td>
No
</td>
<td>
<a href="Stuff_1_a">Show</a>
</td>
</tr>
你可以试试这个xpath。这将首先 select 一个包含特定 td
的 tr
元素,然后 select 所需的 a
标签。
"//tr[@class='even' and td[@title='Main']]/a[text()='Show']"
编辑: 这个 xpath 适用于 OP
"//*[@id='Some_id']/div[1]/table/tbody/tr[@class='even']/td/a[contains(text (), 'Show')]"
您想在 table 中找到属于 "Main" 行的 "Show"。
这是我会做的
xpath=//td[@title='Main']/following-sibling::td[contains(text(), 'Show')]
关于 xpath 轴的更多信息:http://www.w3schools.com/xsl/xpath_axes.asp