如何使用Python和Selenium提取网页表格列的所有文本?
解决方法
错误原因
find_elements方法返回的是WebElement对象的列表,列表本身没有.text属性,必须访问列表内的单个元素才能调用.text。- HTML表格的行索引(
tr[])从1开始,但你的循环用range(totalRows)默认从0起步,会生成tr[0]这种无效XPath,导致获取不到目标元素。
修正方案
方案1:用find_element(单数)逐个获取单元格
修正循环索引从1开始,直接获取单个单元格元素后提取文本:
for x in range(1, totalRows + 1): cell = driver.find_element(by=By.XPATH, value=f'//*[@id="webTable"]/tbody/tr[{x}]/td[6]') print(cell.text)
方案2:一次性获取整列元素再遍历
更高效的方式是直接定位第6列的所有单元格,再逐个提取文本:
column_cells = driver.find_elements(by=By.XPATH, value='//*[@id="webTable"]/tbody/tr/td[6]') for cell in column_cells: print(cell.text)
补充说明
- 方案2不需要预先知道总行数
totalRows,代码更简洁且不易出错。 - 如果单元格存在动态加载的情况,建议配合显式等待(
WebDriverWait)确保元素加载完成后再获取文本。
内容的提问来源于stack exchange,提问作者Mohamed Salem
相关产品推荐
相关产品推荐

