Python+Selenium如何获取表格行数 解决WebElement无len()报错
报错原因
你调用find_element_by_xpath返回的是单个WebElement对象,不是可统计长度的列表/序列,直接对其使用len()方法就会触发该类型错误。
正确实现方式
要统计表格行数,你需要先通过复数形式的find_elements系列方法,定位到表格内所有的<tr>行元素(该方法返回WebElement列表,可直接用len()统计长度),示例代码如下:
# 第一步:定位到目标表格元素 tabela = self.driver.find_element_by_xpath("/html/body/div[1]/div/table") # 第二步:从当前表格下匹配所有tr行元素,注意xpath开头的.代表限定在当前元素内部查找 table_rows = tabela.find_elements_by_xpath(".//tr") # 第三步:打印行数 print(len(table_rows))
附加说明
- 如果只需要统计表格正文行数、排除表头行,可将第二步的xpath修改为
.//tbody/tr,即可过滤掉<thead>标签内的表头行 - 如果你使用的是Selenium 4.0及以上版本,
find_element_by_xpath/find_elements_by_xpath方法已被官方弃用,推荐使用以下写法:
首先导入By类:
对应修改代码为:from selenium.webdriver.common.by import Bytabela = self.driver.find_element(By.XPATH, "/html/body/div[1]/div/table") table_rows = tabela.find_elements(By.XPATH, ".//tr") print(len(table_rows))
内容的提问来源于stack exchange,提问作者Senhor Esteves
相关产品推荐
相关产品推荐

