的XPath ::获取以下同胞

问题描述 投票:61回答:3

我有以下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],我得到两个元素。

html xpath siblings scraper
3个回答
94
投票

你应该寻找一个有等于“颜色文摘”的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


4
投票

你可以去识别使用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)


0
投票

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

在Chrome浏览器(Safari浏览器可能太),您可以检查一个元素,然后右键单击你想要得到的XPath的标签,那么您可以复制XPath来选择该元素。

© www.soinside.com 2019 - 2024. All rights reserved.