Playwright · Python


代理自动化·剧作家
将验证码解决添加到 Playwright Agents
为基于 Playwright 的 AI 代理提供一种处理受支持的验证码的方法。 CapSolver Agent Tools 可以检测挑战,并在启用求解时返回并自动填充结果,以便授权的 Python 工作流程可以继续。
它是如何运作的
Playwright 如何解决验证码问题
使用 CapSolver Agent Tools 检测支持的验证码,启用后解决它们,并自动填充结果,以便您授权的 Playwright 工作流程可以继续。
检测
验证码 iframe 或小部件出现
解决
创建任务 → 获取任务结果
注入
页面.评估(令牌)
继续
提交表格,继续
何时使用
基于 Playwright 的 AI 代理使用 CapSolver 的地方
质量保证测试自动化
在授权的登台和生产测试中处理验证码,以减少测试运行中断。
RPA 工作流程
当验证码出现时,保持数据输入、订单处理、报告和其他浏览器工作流程运行。
数据提取
从具有机器人保护的站点进行网络抓取和数据收集 - 通过 reCAPTCHA 或 Cloudflare Turnstile 控制的公共数据。
自定义浏览器代理
使用 Playwright 构建自定义 AI 浏览器代理,可以解决验证码并继续执行任务。
快速入门
将验证码解决添加到 Playwright
选择自动处理以加快设置速度,或者在需要对验证码结果进行更多控制时使用令牌模式。
# pip install capsolver-core playwright
# playwright install chromium
# export CAPSOLVER_API_KEY=CAP-XXXXXX
import asyncio
import os
from playwright.async_api import async_playwright
from capsolver_core import Capsolver, from_playwright_page
from _env import load_example_env # demo only: reads repo-root .env
load_example_env()
async def main():
async with async_playwright() as pw:
browser = await pw.chromium.launch(headless=False)
page = await browser.new_page()
await page.goto("https://www.google.com/recaptcha/api2/demo")
cap = Capsolver(api_key=os.environ["CAPSOLVER_API_KEY"])
driver = from_playwright_page(page) # wrap the live Playwright page
results = await cap.solve_on_page(driver) # detect -> solve -> autofill
for r in results:
status = "solved" if r.solution else "failed"
print(r.info.type.value, status, "filled:", r.filled)
await page.click('#recaptcha-demo-submit')
await page.wait_for_selector(".recaptcha-success")
print("Verification successful!")
await browser.close()
asyncio.run(main())
代币注入
不同的验证码,不同的注入字段。
每个 CAPTCHA 类型都将令牌存储在不同的 DOM 元素中。以下是最常见类型的注入方法。
# pip install capsolver-core playwright
# playwright install chromium
# export CAPSOLVER_API_KEY=CAP-XXXXXX
#
# reCAPTCHA v2 token injection -> #g-recaptcha-response
# handler.fill() writes the token and fires the widget callback for you.
import asyncio
import os
from playwright.async_api import async_playwright
from capsolver_core import Capsolver, CaptchaInfo, CaptchaType, from_playwright_page
from _env import load_example_env # demo only: reads repo-root .env
load_example_env()
URL = "https://www.google.com/recaptcha/api2/demo"
SITE_KEY = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
async def main():
async with async_playwright() as pw:
browser = await pw.chromium.launch(headless=False)
page = await browser.new_page()
await page.goto(URL)
cap = Capsolver(api_key=os.environ["CAPSOLVER_API_KEY"])
driver = from_playwright_page(page)
info = CaptchaInfo(
type=CaptchaType.RECAPTCHA_V2, website_url=URL, website_key=SITE_KEY
)
solution = await cap.solve(info)
filled = await cap.get_handler(info.type).fill(driver, solution, info)
print(f"filled={filled} token={solution.token[:40]}...")
await browser.close()
asyncio.run(main())验证码覆盖率
可供剧作家代理使用的验证码类型
将 CapSolver 与 Playwright 结合使用来处理常见的 reCAPTCHA 和 Cloudflare Turnstile 挑战。
验证码类型
任务类型
注射选择器
状态
验证码 v2
ReCaptchaV2TaskProxyLess
#g-recaptcha-响应
验证码 v3
ReCaptchaV3TaskProxyLess
随请求提交
reCAPTCHA 企业版
ReCaptchaV2EnterpriseTaskProxyLess
#g-recaptcha-响应
Cloudflare 十字转门
AntiTurnstileTaskProxyLess
[name="cf-turnstile-response"]
生产最佳实践
在生产中可靠处理验证码的技巧。
解决前检查
01仅当验证码实际存在时才调用 CapSolver。首先检查 iframe 或 widget 是否存在。
设置超时时间
02设置合理的超时(30-60 秒),如果 getTaskResult 花费太长时间,则通过退避重试。
清楚地处理结果
03正确应用返回的结果并定义求解未完成时工作流程应执行的操作。
尊重率限制
04运行并行浏览器上下文时,限制 CapSolver 调用以保持在计划的限制范围内。
记录验证码遭遇
05记录每次解决尝试的任务 ID、验证码类型、结果状态和错误。
保护您的 API 密钥
06将您的 CapSolver API 密钥存储在环境变量或秘密管理器中。
负责任的使用
使用 CapSolver 实现负责任的自动化
CapSolver 专为授权自动化用例而设计:QA 测试、您有权访问的系统上的 RPA、公共数据收集和合规自动化任务。我们不支持或纵容未经授权的访问、撞库、垃圾邮件或任何违反服务条款或适用法律的活动。
许多合法的自动化工作流程被错误地标记为机器人。当您有充分的理由进行自动化时,CapSolver 可帮助您从误报的验证码挑战中恢复过来。

