add*_*ons 68 html xpath siblings scraper
我有以下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>
Run Code Online (Sandbox Code Playgroud)
我试图提取具有解码值的第二个"颜色摘要"td元素.
我写了下面的xpath,但没有得到第二个我没有得到第二个td元素.
//td[text() = ' Color Digest ']/following-sibling::td[2]
Run Code Online (Sandbox Code Playgroud)
当我把它改为td [2]到td [1]时,我得到了两个元素.
jam*_*ock 96
您应该寻找具有等于'Color Digest'的td的第二个tr,然后您需要查看tr中第一个td或第二个td的以下兄弟.
请尝试以下方法:
//tr[td='Color Digest'][2]/td/following-sibling::td[1]
Run Code Online (Sandbox Code Playgroud)
要么
//tr[td='Color Digest'][2]/td[2]
Run Code Online (Sandbox Code Playgroud)
http://www.xpathtester.com/saved/76bb0bca-1896-43b7-8312-54f924a98a89
小智 5
您可以使用 xPath 识别元素列表:
//td[text() = ' Color Digest ']/following-sibling::td[1]
Run Code Online (Sandbox Code Playgroud)
这将为您提供两个元素的列表,然后您可以将第二个元素用作您想要的元素。例如:
List<WebElement> elements = driver.findElements(By.xpath("//td[text() = ' Color Digest ']/following-sibling::td[1]"))
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用第二个元素作为您想要的元素,即elements.get(1)
归档时间: |
|
查看次数: |
192600 次 |
最近记录: |