xpath多个条件
在硒化物中, 我需要找到文本为“XXX”的第三个链接xpath多个条件,xpath,selenium,Xpath,Selenium,在硒化物中, 我需要找到文本为“XXX”的第三个链接 <tr> <td>clickAndWait</td> <td>//a[text()='XXX'][3]</td> <td></td> </tr> 单击并等待 //a[text()='XXX'][3] 错误:找不到元素,有什么想法吗?使用: (//a[text()='XXX'])[3] 表达方式: //a[text()='XXX']
<tr>
<td>clickAndWait</td>
<td>//a[text()='XXX'][3]</td>
<td></td>
</tr>
单击并等待
//a[text()='XXX'][3]
错误:找不到元素,有什么想法吗?使用:
(//a[text()='XXX'])[3]
表达方式:
//a[text()='XXX'][3]
选择每个元素,该元素具有值为'XXX'
的文本子元素,并且是其父元素的第三个子元素。显然,没有这样的节点,您不希望这样,但是您希望从所有这样的a
元素中获得第三个节点
这正是上面第一个XPath表达式所选择的,正如我在
这可能是因为XPath中的一个微妙之处,//a[1]
将选择作为其父代的第一个para子代的所有子代a元素,而不是整个文档中的第一个a元素。使用类似于//body/genderant::a[1]
或将其锚定到具有类似于id('myLinks')/genderant::a[1]
的id的元素可能会更好。请注意,对于最后一个示例,您需要使用xpath=
处理定位器。我需要首先按文本进行筛选,而不是id,locator=text('myLinks')/genderant::a[1]是无效的xpath,我需要找到文本为myLinks的第n个链接。链接可以在文档中的任何位置。我没有建议使用locator=text('myLinks')/genderant::a[1]
,这确实是一个无效的XPath。我的//body/genderant::a[1]
建议不起作用吗?