gpt4 book ai didi

java - 查找没有id的特定表

转载 作者:行者123 更新时间:2023-12-01 21:27:04 25 4
gpt4 key购买 nike

我正在开发我的第一个 Selenium 项目,但遇到了一些障碍。我有一个包含 3 个不同表格的网页。我只想从这些表之一中提取数据。我面临的问题是 bootstrap 用于设置这些页面的样式,因此所有表共享相同的类,并且没有一个表具有我可以专门搜索的 id。我可以通过搜索 tr/td 的 xpath 在不同的页面上执行此操作,但由于存在多个表,这不适用于此页面。检查我想要从中提取数据的表的页面源,我得到如下内容:

<div class="col-md-4">
<div class="panel panel-success">
<div class="panel-panel-heading>
<h3 class="panel-title">table title</h3>
</div>
<div class="table-responsive">
<table class="table-striped table-bordered">
<thead>...</thead>
<tbody>
<tr ng-repeat="element in main.elementService.elementTable" class="ng-scope">
<td class="ng-binding">info1</td>
<td class="ng-binding">info2</td>
<td class="ng-binding">info3</td>
<td class="ng-binding">info4</td>
</tr>
<tr ng-repeat="element in main.elementService.elementTable" class="ng-scope">
<tr ng-repeat="element in main.elementService.elementTable" class="ng-scope">
<tr ng-repeat="element in main.elementService.elementTable" class="ng-scope">
</tbody>
</table>
</div>

所以这导致了我不确定可以使用什么来仅选择该表的问题。如果我搜索trtd我也会从页面上的其他表中获取数据。

我看到的该表的唯一独特功能是 <div class="col-md-4">.我不知道是否可能,但我的想法是进行某种组合搜索以转到此特定 div,然后转到 xpath tr/td 从表的每个单元格中提取数据,但我我是 Selenium 的新手,我不知道如何去做这件事。我正在查看的文档似乎没有显示如何将多种策略组合在一起,并且我在谷歌搜索中遇到了困难,所以我没有找到一个谷歌链接让我深入了解如何做到这一点.

我尝试过类似的方法,但我认为我的语法不正确

 List<WebElement> TableElems = chrome.findElements(By.xpath("//div[@class='col-md-4']//tr/td"));

我也尝试过

List<WebElement> TableElems = chrome.findElements(By.xpath("//div[@class='col-md-4']" && "//tr/td"));

但是&&这里不允许使用运算符。

如果有人有任何想法可以引导我走向正确的方向,我将不胜感激。

最佳答案

您可以使用此 xpath 表达式:

"//div[@class='col-md-4']//tr/td"

与您的尝试的不同之处在于使用了 class 属性(没有 id)以及 tr 之前的双斜杠,这允许 tr 成为任意深度的 div[@id='col-md-4'] 的后代元素,而不仅仅是直接子元素。

关于java - 查找没有id的特定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37967981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com