如何使用 Python 在 Selenium 中获取页面中表格内的所有值(包括标题)?

selenium web driverautomation testingsoftware testing更新于 2026/2/14 12:37:17

我们可以借助 find_elements 方法获取 Selenium 中表格内的所有值。表格的行在 HTML 代码中用 <tr> 标签表示。要获取所有行,我们需要使用定位器 xpath,然后使用 find_elements_by_xpath 方法。方法将返回行列表。接下来,我们需要借助 len 方法计算列表的大小。

语法

driver.find_elements_by_xpath("//table/tbody/tr")

获取所有行后,我们现在需要计算列数。

表格的标题在 HTML 代码中用 <th> 标签表示。 html 中的 <th> 标签始终位于表格的第一行。行在 html 中用 <tr> 标签标识。列标题的总数通常等于列的总数。 <th> 标签的父级始终是 <tr> 标签。

逻辑是获取所有标题。我们将使用定位器 xpath,然后使用 find_elements_by_xpath 方法。将返回标题列表。接下来,我们需要借助 len 方法计算列表的大小。

语法

driver.find_elements_by_xpath("//table/tbody/tr[1]/th")

表格列数的 HTML 代码片段如下 −

示例

获取表格中所有值的编码实现。

from selenium import webdriver
#浏览器暴露一个可执行文件
#通过Selenium测试,我们将调用该可执行文件,然后该文件将#调用
实际的浏览器
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# 最大化浏览器窗口
driver.maximize_window()
# 获取方法启动URL
driver.get("https://www.tutorialspoint.com/plsql/plsql_basic_syntax.htm")
# 刷新浏览器
driver.refresh()
# 获取表的行数
rws = driver.find_elements_by_xpath("//table/tbody/tr")
# len 方法用于获取该列表的大小
r = len(rws)
# 获取表的列数
cols = driver.find_elements_by_xpath("//table/tbody/tr[1]/th")
# 使用 len 方法获取该列表的大小
c = len(cols)
el m,nemt = []
# 遍历行
for i in range(1,r):
# 列表中每行数据设置为 0
row = []
# 遍历列
   for j in range(1,c):
      # 从第 i 行第 j 列获取文本
      d=driver.find_element_by_xpath("//tr["+str(i)+"]/td["+str(j)+"]").text
      row.append(d)
#最终存储列表并在控制台中打印
elemt.append(row)
print(elemt)
#关闭浏览器
driver.close()

相关文章