当前位置: 首页 > 知识库问答 >
问题:

Selenium Webdriver-获取表数据

糜野
2023-03-14

我想从UI中的表中提取数据。我知道如何使用“tr”和“td”遍历行和列。但我的桌子是这样的:

<table>
 <tbody>
  <tr><td>data</td><th>data</th><td>data</td><td>data</td></tr>
  <tr><td>data</td><th>data</th><td>data</td><td>data</td></tr>
  <tr><td>data</td><th>data</th><td>data</td><td>data</td></tr>
 </tbody>
</table>

如何使代码通用,以便处理中间出现的“TH”。目前,我正在使用以下代码:

// Grab the table
WebElement table = driver.findElement(By.id(searchResultsGrid));

// Now get all the TR elements from the table
List<WebElement> allRows = table.findElements(By.tagName("tr"));
// And iterate over them, getting the cells
for (WebElement row : allRows) {
 List<WebElement> cells = row.findElements(By.tagName("td"));
 for (WebElement cell : cells) {
 // And so on
 }
}

共有3个答案

田骁
2023-03-14
// Grab the table
WebElement table = driver.findElement(By.id("searchResultsGrid"));

// Now get all the TR elements from the table
List<WebElement> allRows = table.findElements(By.tagName("tr"));
// And iterate over them, getting the cells
for (WebElement row : allRows) {
    List<WebElement> cells = row.findElements(By.tagName("td"));
    for (WebElement cell : cells) {
        System.out.println("content >>   " + cell.getText());
    }
}

使用单元格。getText()只会起作用

舒宏富
2023-03-14

也许对这个问题的负责人来说为时已晚,但对其他人来说很有帮助。

List<WebElement> cells = row.findElements(By.xpath(".//*[local-name(.)='th' or local-name(.)='td']"));
孟成文
2023-03-14

您可以在不区分td和th的情况下查找tr元素的所有子元素。所以而不是

List<WebElement> cells = row.findElements(By.tagName("td"));

我会使用

List<WebElement> cells = row.findElements(By.xpath("./*"));
 类似资料:
  • 问题陈述:我试图在网页上获取span标记的值。*该网页上有多个span标记,其中我需要4个。

  • 操作步骤 1.通过 tableID 实例化一个 TableObject 对象,操作该对象即相当于操作对应的数据表 let MyTableObject = new BaaS.TableObject(tableID) 参数说明 参数 类型 必填 说明 tableID Number 是 数据表 ID 2.指定 recordID 执行获取相应数据项操作 MyTableObject.get(recordID

  • {% tabs first=”SDK 1.1.0 及以上版本”, second=”SDK 1.1.0 以下版本” %} {% content “first” %} SDK 1.1.0 及以上版本 操作步骤 1.通过 tableID 实例化一个 TableObject 对象,操作该对象即相当于操作对应的数据表 let MyTableObject = new wx.BaaS.TableObject(t

  • 问题内容: 我想从UI中的表中获取数据。我知道使用“ tr”和“ td”遍历行和列。但是我桌子上的桌子是这样的: 如何使我的代码通用,以便可以处理中间出现的“ TH”。目前,我正在使用此代码: 问题答案: 您可以查找所有tr元素的子元素,而无需区分td和th。所以代替 我会用

  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 问题内容: 我已经搜索了许多网站,但没有遇到任何从单个数据库获取表名的细节的代码或教程。 假设我有4个数据库,并且我想要数据库中所有表的名称,我可以使用什么查询? 问题答案: