繁体   English   中英

XPath ::获取以下兄弟姐妹

[英]XPath:: Get following Sibling

我有以下HTML结构:我正在尝试构建一个强大的方法来提取第二个颜色摘要元素,因为DOM中会有很多这样的标记。

<table>
  <tbody>
    <tr bgcolor="#AAAAAA">
    <tr>
    <tr>
    <tr>
    <tr>
      <td>Color Digest </td>
      <td>AgArAQICGQMVBBwTIRQHIwg0GUMURAZTBWQJcwV0AoEDAQ </td>
    </tr>
    <tr>
      <td>Color Digest </td>
      <td>2,43,2,25,21,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, </td>
    </tr>
  </tbody>
</table>

我试图提取具有解码值的第二个“颜色摘要”td元素。

我写了下面的xpath,但没有得到第二个我没有得到第二个td元素。

//td[text() = ' Color Digest ']/following-sibling::td[2]

当我把它改为td [2]到td [1]时,我得到了两个元素。

您应该寻找具有等于'Color Digest'的td的第二个tr,然后您需要查看tr中第一个td或第二个td的以下兄弟。

请尝试以下方法:

//tr[td='Color Digest'][2]/td/following-sibling::td[1]

要么

//tr[td='Color Digest'][2]/td[2]

http://www.xpathtester.com/saved/76bb0bca-1896-43b7-8312-54f924a98a89

您可以使用xPath标识元素列表:

//td[text() = ' Color Digest ']/following-sibling::td[1]

这将为您提供两个元素的列表,而不是您可以将第二个元素用作预期元素。 例如:

List<WebElement> elements = driver.findElements(By.xpath("//td[text() = ' Color Digest ']/following-sibling::td[1]"))

现在,您可以使用第二个元素作为您想要的元素,即elements.get(1)

/html/body/table/tbody/tr[9]/td[1]

在Chrome(也可能是Safari)中,您可以检查元素,然后右键单击要获取xpath的标记,然后您可以复制xpath以选择该元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM