Html 如何在不使用contains的情况下查找XPath
我想找到类“body”的Xpath。 但问题是这两个类也在另一个表中Html 如何在不使用contains的情况下查找XPath,html,xml,xpath,Html,Xml,Xpath,我想找到类“body”的Xpath。 但问题是这两个类也在另一个表中 <td colspan="2" valign="middle"> <a style="display: block;text-decoration:none;color:#000;" href="/Pages/Requests.aspx?type=C"> <table class="special"> <tr style="height: 48px;"> <
<td colspan="2" valign="middle">
<a style="display: block;text-decoration:none;color:#000;" href="/Pages/Requests.aspx?type=C">
<table class="special">
<tr style="height: 48px;">
<td class="single_td_width" align="center">●
</td>
<td align="left" class="body" style="color: #000; text-align: left;">End date</td>
<td colspan="2" valign="middle">
<a style="display: block;text-decoration:none;color:#000;" href="/Pages/Requests.aspx?type=C">
<table class="special">
<tr style="height: 48px;">
<td class="single_td_width" align="center">●
</td>
<td align="left" class="classDate" style="color: #000; text-align: left;">Start date</td>
●
结束日期
●
开始日期
为什么不改用JavaScript DOM GetElementsByCassName?但在XPath中,它只是
/*[@class=“Body”]
我看到'td'有一个text()属性,因此如果具有相同类属性体的另一个'td'有一个不同的text(),您可以这样做:
"//td[@class = 'body' and text() = 'End date']"
如果有多个具有相同属性的元素,则可能应该使用“and”或“do axes”等条件转到该特定元素。像前面的兄弟姐妹,下面的兄弟姐妹等,你可以看到这个网站来学习如何做XPath
此XPath
//td[@class='body']
将使用@class='body'
选择文档中的所有td
元素
如果您有多个,您需要告诉我们它们有什么不同,以及您希望选择哪一个。如果没有这一点,我们只能说
(//td[@class='body'])[1]
是第一个这样的td
,并且
(//td[@class='body'])[2]
是第二个这样的
td
你好,philip,我有两个与上面提到的同名的类,但我想得到第二个类值,即开始日期。哦,明白了,使用“(/*[@class=“Body”])[2]。它可能被0索引,不记得tbh xpath实际上同时执行这两个操作,这是另一个故事,所以可能是[1]或[2]。我希望这就是你要找的。谢谢你的回复,但是有没有其他方法可以找到这个,不使用contains,text,我想在yaml页面声明这个定位器正如Phillips提到的,你可以通过数组的索引来定位,比如:“//td[@class=body][1]”,如果你只有两个带有该类属性的td,你就不会有问题。唯一的缺点是,如果此页面以某种方式更新,而数组发生更改,xpath将崩溃,这就是我试图避免索引的原因,而且索引可能会因浏览器而异。为什么在标题中说“不使用包含”?我看不出你为什么要使用contains,但我也看不出你为什么会有不使用contains的限制。