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

如何用Python实现无需渲染页面即可快速点击网页按钮

Selenium点击效率优化方案

你的性能瓶颈完全来自循环内重复初始化浏览器驱动、重载页面的冗余操作,无需渲染、无需重启驱动、无需重复加载页面的方案完全可以实现每秒5次的点击速率,优化逻辑如下:

核心优化点

  • 全局仅初始化1次浏览器驱动,循环内复用实例,不重复打开/关闭驱动,也不需要重复加载目标页面
  • 开启Chrome无头模式,禁用UI渲染、图片加载、扩展等非必要功能,大幅降低资源消耗
  • 替换硬编码sleep为显式等待,精准判断元素可点击状态,避免无效等待
  • 直接调用Chrome DevTools接口清理缓存/ cookie,不需要重启驱动就能实现和重启一样的缓存清空效果
  • 优先使用JS执行点击,跳过UI层交互的额外延迟

优化后代码示例

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver

# 全局初始化一次驱动,配置无头模式
options = webdriver.ChromeOptions()
# 开启无头模式,无UI渲染
options.add_argument('--headless=new')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--disable-extensions')
# 禁用图片加载进一步提速
options.add_argument('--blink-settings=imagesEnabled=false')

driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 2)
# 仅加载一次页面
driver.get("你的目标页面地址")
# 提前定位一次按钮元素,不需要循环重复查找
xpath2 = "//*[@id=\"main\"]/div[1]/div/div/div/div/div/div[2]/div[1]/div[2]/div[2]/div/a/div/div/button"
cookie_xpath = "//*[@id=\"CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll\"]"

while 1:
    # 处理cookie弹窗,出现就点,不出现就跳过
    try:
        cookie_btn = wait.until(EC.element_to_be_clickable((By.XPATH, cookie_xpath)))
        driver.execute_script("arguments[0].click();", cookie_btn)
    except:
        pass
    # 等待目标按钮可点击后执行点击
    target_btn = wait.until(EC.element_to_be_clickable((By.XPATH, xpath2)))
    driver.execute_script("arguments[0].click();", target_btn)
    # 清理缓存,无需重启驱动
    driver.execute_cdp_cmd('Network.clearBrowserCache', {})
    driver.execute_cdp_cmd('Network.clearBrowserCookies', {})
    driver.execute_cdp_cmd('Storage.clearDataForOrigin', {
        'origin': driver.current_url,
        'storageTypes': 'all'
    })
    # 可选:如果点击后页面状态有变化,刷新一次即可,比重启驱动快很多
    # driver.refresh()

极致提速方案(不需要Selenium)

如果你的场景不需要处理复杂的前端加密、动态渲染,还可以直接抓取按钮点击对应的后端接口,用requests库直接发送HTTP请求,完全不需要浏览器环境,速度可以达到每秒几十次,操作方式为:打开浏览器F12开发者工具的网络面板,点击目标按钮后找到对应的请求,复制为cURL格式后转成Python请求代码即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:21:00