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

Selenium无法点击网站按钮(含隐藏按钮)技术求助

解决隐藏按钮点击失败的问题

我来帮你搞定这个困扰!先理清楚页面的逻辑:显示的get图片按钮点击后,本质是触发隐藏的submitMe按钮的点击事件,最终执行submitData()函数。你之前的尝试失败大概率是因为缺少等待逻辑,或者对隐藏元素的点击方式不对,咱们一步步来解决:

方法一:直接调用核心JS函数(最可靠)

既然最终目的是执行submitData(),那完全可以跳过按钮环节,直接调用这个函数,这是最不容易出问题的方式:

# 先导入等待相关的工具(建议加上,避免页面未加载完成就操作)
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 等待页面关键元素加载完成(比如那个显示的图片按钮)
WebDriverWait(sub_driver, 10).until(
    EC.presence_of_element_located((By.ID, "get"))
)

# 直接执行目标JS函数
sub_driver.execute_script("submitData();")

方法二:正确触发隐藏按钮的点击

如果你一定要通过点击submitMe按钮来触发逻辑,注意Selenium默认无法直接点击display:none的元素,必须用JS强制触发:

# 等待隐藏按钮被页面加载出来
submit_btn = WebDriverWait(sub_driver, 10).until(
    EC.presence_of_element_located((By.ID, "submitMe"))
)

# 用JS执行点击操作
sub_driver.execute_script("arguments[0].click();", submit_btn)

方法三:点击显示的图片按钮(贴近用户真实操作)

你之前尝试过点击get按钮,但可能因为页面没加载完导致失败,加上等待逻辑再试试:

# 等待图片按钮可点击
get_btn = WebDriverWait(sub_driver, 10).until(
    EC.element_to_be_clickable((By.ID, "get"))
)
get_btn.click()

你之前代码的问题分析

  • 缺少等待逻辑:页面还没加载完成就去查找/点击元素,很容易出现"找不到元素"或者点击无效的情况
  • 代码中my_var=...click的写法错误:.click是方法引用,不是元素对象,传给execute_script会导致出错,应该直接获取元素本身
  • 直接使用find_element_by_xxx没有等待机制,稳定性极差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:08:00