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

使用Python+Selenium无法获取网站按钮元素的问题求助

解决Selenium定位按钮失败的问题

1. 先修复语法错误

报错'str' object is not callable是因为你把By.CSS_SELECTOR当成函数调用了——它是个字符串常量,正确用法是把定位方式和选择器作为两个参数传给find_elements(或find_element),而不是把选择器塞进By.CSS_SELECTOR()里。

2. 匹配正确的元素选择器

你代码里用的选择器.flex-grow block w-full...和目标按钮的HTML完全不匹配,目标按钮的class是bg-gray-600 hover:bg-gray-800...,得换对应选择器。

几种可行的定位代码

用type属性定位

button = driver.find_element(By.CSS_SELECTOR, "button[type='submit']")

用type属性+按钮文本(XPath更精准匹配文本)

button = driver.find_element(By.XPATH, "//button[@type='submit' and text()='Chat']")

用class组合定位(挑几个稳定的class,避开hover这类动态样式)

button = driver.find_element(By.CSS_SELECTOR, "button.bg-gray-600.rounded-r-md[type='submit']")

直接通过按钮文本定位

button = driver.find_element(By.XPATH, "//button[text()='Chat']")

额外提示

  • 如果你只需要单个元素,用find_element()就行,find_elements()返回的是元素列表。
  • 避免页面未加载完就定位,可添加等待确保元素存在:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

button = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "button[type='submit']"))
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:27:36