Selenium Webdriver - 获取表数据

2024-01-28

我想从 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
 }
}

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

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

我会用

List<WebElement> cells = row.findElements(By.xpath("./*"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium Webdriver - 获取表数据 的相关文章

随机推荐

  • numpy.einsum 与 Fortran 或 C 相比是否高效?

    我写了一个 numpy 程序 非常耗时 经过profiling 我发现大部分时间都花在了numpy einsum 虽然numpy是LAPACK或BLAS的包装 但我不知道是否numpy einsum的性能与 LAPACK 或 BLAS 中的
  • 将 OS X Bash 脚本翻译为 Windows

    I use Hedge https hedge video 转移幻灯 https www magiclantern fm 在我的 Canon 5D Mark III 上拍摄的视频文件 在 OS X 上 我可以使用 Automator 设置
  • Xamarin iOS Javascript 和 C# 之间的通信

    我们正在实现一个应用程序 我们可以在 Javascript 和 C 之间进行通信 我们的 UIWebView 有一个按钮来调用一些本机功能 在 UIWebView 上 我在 ShouldStartLoad 上有一个处理程序 webView
  • Bake工具看不到SQLite3数据库中的表

    我正在尝试使用 CakePHP 2 1 1 使用 SQLite3 作为数据库构建一个简单的应用程序 为了节省时间 我尝试使用烘焙工具为下表创建模型 CREATE TABLE animals id integer primary key au
  • React - Internet Explorer 11 输入在第一次 onchange 后失去焦点

    我遇到了一个非常奇怪的问题 我无法理解 我目前正在使用 React 16 3 和 Antd 3 11 框架使用 create react app 并且我创建了一个表 该表在其标题列内呈现一个附加了 onChange 事件的组件 当我第一次关
  • “git pull”和“git fetch”有什么区别?

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 两者有什么区别git pull https git scm com docs git pull and git fetch h
  • 詹金斯权限被拒绝

    我很抱歉来到这里询问这个问题 但我已经阅读了所有互联网试图找到解决方案 但我仍然遇到这个问题 我已经成功安装了 当我还有希望的时候就开始吧 jenkins 以便在我们的持续集成流程中使用它 我尝试从一个简单的例子开始 如下所示 pipeli
  • laravel 从带有实际点的文件夹名称加载视图

    我正在创建一个多域 Laravel 应用程序 因此我的视图文件位于每个域的单独文件夹中 例如 以下内容 return view pages SERVER SERVER NAME public home 应该加载一个视图 pages doma
  • Paypal自适应支付php

    我有这个问题 我已经按照这个教程 gt http www youtube com watch v rzRR1i F VA http www youtube com watch v rzRR1i F VA 设置完所有内容后 我在完成身份验证过
  • 计算 VS_KEY 容器名称

    如何计算 VS KEY 容器名称 它们通常是这样的 VS KEY 71E582524B5DDE29 我假设它是基于计算机名称的 但是如果我们运行的云服务在每次实例重新启动时随机更改计算机名称会怎样 当实例启动时 我们需要知道容器名称 以便我
  • C++ 运行时获取当前操作系统

    我需要弄清楚我的程序在运行时运行的操作系统 我正在使用 Qt 4 6 2 MinGW 和 Eclipse 以及 CDT 我的程序应在 Windows 或 Linux 上运行命令行 QProcess 现在我需要一种开关来根据操作系统运行不同的
  • 在 angularjs 中调用 $window.print() 会导致打印预览显示空白页

    我有一个非常奇怪的问题 当我在 angularjs 中调用 window print 时 我看到的只是左上角的日期 顶部的页面名称 右下角的页码和左下角的网址 然而 页面上没有其他内容 这很奇怪 因为常规页面有很多内容 我想这与我在页面上的
  • 如何使同一个 JSF 复合组件包含多次以拥有自己的 javascript 范围?

    我有一个像这样的 JSF 复合组件
  • 函数 write() 与数字表示法不一致

    考虑以下脚本 list of numbers lt as numeric for i in 1001999498 1002000501 list of numbers lt c list of numbers i write list of
  • 如何将列表写入Excel列?

    我有一个 Python 中的一些值的列表 想使用 openpyxl 将它们写入 Excel 电子表格列 到目前为止我尝试过 在哪里lstStat是需要写入 Excel 列的整数列表 for statN in lstStat for line
  • 简单:获取 Android 中发送的电子邮件的确认

    启动电子邮件意图后 如何确认电子邮件已发送或调用它的活动返回错误 Intent emailIntent new Intent Intent ACTION SEND emailIntent setType png image String s
  • 尝试在Elasticsearch中设置max_gram和min_gram

    我尝试在 Ubuntu 16 04 EC2 服务器上部署 Ruby on Rails 应用程序 但给出了有关 Elasticsearch 上 max gram 和 min gram 之间差异的错误 我还没有任何 Elasticsearch
  • React:将双色滑块拇指设置为具有透明背景的图像

    我制作了一个滑块 左边应该是蓝色 右边是灰色 蓝色也应该比灰色更厚 我有两个问题 如果拇指片具有透明切口 则滑块的蓝色部分不会一直延伸到图像上可见内容的左侧 我希望滑块的边缘是圆形的 尤其是蓝色边缘 我可能不需要灰色 By round ed
  • 按下按钮时触发点击事件

    我正在创建一个将元素移动到右侧的指令 每次单击时 该项目都会移动到右侧 但我希望只要按住按钮 该元素就会移动 directive car function return restrict A link function scope elem
  • Selenium Webdriver - 获取表数据

    我想从 UI 中的表中获取数据 我知道使用 tr 和 td 循环行和列 但我的桌子是这样的 table tbody tr td data td th data th td data td td data td tr tr td data t