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

Selenium无法点击Get Data Button按钮问题求助

解决Selenium无法点击NSE网站"Get Data"按钮的问题

我之前也碰到过类似的情况,这个按钮点击失败通常是几个常见原因导致的,咱们一步步来解决:

1. 替换已弃用的定位方法

首先要注意,driver.find_element_by_class_name是Selenium 4版本前的旧方法,现在已经被官方弃用了,建议使用find_element(By.CLASS_NAME, "classname")的语法(你代码里已经导入了By类,这点没问题)。

2. 等待元素完全可交互

页面加载完成后,按钮可能还没完全渲染好就尝试点击,这时候很容易触发"元素不可交互"的错误。咱们可以用WebDriverWait来等待元素真正可点击,而不是仅仅存在于DOM中。

3. 处理元素在视口外的情况

有时候按钮虽然已经加载,但不在当前浏览器的可见视口范围内,直接调用click()会失效,这时候可以先滚动到元素位置再执行点击。

修改后的代码示例

把你原来的点击语句替换成下面的代码:

# 等待Get Data按钮可点击
get_data_btn = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "getdata-button")))

# (可选)如果点击仍失败,先滚动到按钮位置
driver.execute_script("arguments[0].scrollIntoView(true);", get_data_btn)

# 执行点击
get_data_btn.click()

如果上面的普通点击还是没效果,可能是页面的JS事件绑定有特殊逻辑,这时候可以尝试用JavaScript直接触发点击:

# 用JavaScript强制触发按钮点击
driver.execute_script("arguments[0].click();", get_data_btn)

额外注意点

  • 确保你的ChromeDriver版本和Chrome浏览器版本匹配,webdriver-manager虽然会自动适配,但偶尔也需要手动确认版本一致性;
  • 你的代码里已经启用了eager页面加载策略,这个设置没问题,如果页面加载仍然偏慢,可以适当把WebDriverWait的超时时间从20调整到30。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 18:27:43