You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python+Selenium点击HTML表格最后一行报错求助

解决Selenium点击表格最后一行的问题

错误原因分析

你写的代码里,By.CSS_SELECTOR和By.XPATH的用法完全错误——它们是常量字符串,不是可调用的函数,不能加括号传参,正确用法是作为find_element方法的第一个参数,选择器表达式作为第二个参数。

修正后的代码

方法一:CSS选择器

如果要定位表格最后一行并点击,或者点击该行内的目标单元格,代码如下:

# 定位表格最后一行并点击
last_row = driver.find_element(By.CSS_SELECTOR, "table tbody tr:last-of-type")
last_row.click()

# 定位该行内的目标td(匹配你截图里的元素类名)
last_target_td = driver.find_element(By.CSS_SELECTOR, "table tbody tr:last-of-type td.phone-leftinline.yui-dt6-col-Type.yui-dt-col-Type.yui-dt-first")
last_target_td.click()

注意:CSS选择器中多个类名需要用.连接,不能用空格(空格代表后代选择器,会导致定位范围错误)。

方法二:XPath定位

修正XPATH的参数传递方式,代码如下:

# 定位表格最后一行并点击
last_row = driver.find_element(By.XPATH, "(//table[1]/tbody/tr)[last()]")
last_row.click()

# 定位该行内的目标td
last_target_td = driver.find_element(By.XPATH, "(//table[1]/tbody/tr)[last()]/td[contains(@class, 'phone-leftinline') and contains(@class, 'yui-dt6-col-Type')]")
last_target_td.click()

额外优化建议

为避免元素未加载完成导致的定位失败,建议添加显式等待:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待最后一行可点击后再操作
last_row = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "(//table[1]/tbody/tr)[last()]"))
)
last_row.click()

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:10:13