Skip to content

fix(captcha): use empty placeholder for recaptcha render and support browser_headless - #199

Open
chinbor wants to merge 1 commit into
TheSmallHanCat:mainfrom
chinbor:fix/recaptcha-placeholder-and-headless
Open

chinbor wants to merge 1 commit into
TheSmallHanCat:mainfrom
chinbor:fix/recaptcha-placeholder-and-headless

Conversation

@chinbor

@chinbor chinbor commented Nov 15, 2026

Copy link
Copy Markdown

问题描述

  1. 在部分环境使用 browser 打码模式时,recaptcha_runtime.py 直接将 document.documentElement 传入 grecaptcha.enterprise.render(),导致报错:reCAPTCHA placeholder element must be empty。
  2. browser 模式默认启动有头 Chromium 窗口,在 Windows 桌面常驻场景下会频繁弹窗抢焦点。

修改内容

  • src/services/recaptcha_runtime.py:创建专用隐藏空 <div> 容器(size: 'invisible')传入 grecaptcha.enterprise.render(),避免 placeholder element must be empty 报错。
  • src/core/config.py & src/services/browser_captcha.py:新增 browser_headless 配置项(默认 False 保持兼容),开启后使用 Playwright headless=True, channel="chromium" 静默完成打码。

验证情况

已在 Windows + Playwright Chromium 环境下实测 browser_headless = true 图片与视频生成均正常通过。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant