Solve image captchas inside Selenium WebDriver today — reCAPTCHA & hCaptcha flows are planned previews — Last Updated: August 29, 2026
Selenium Captcha Solver integrates Selenium WebDriver automation with external solving APIs. CaptchaKings solves classic text/image captchas (~1.2s, $0.80/1k) and token types (GeeTest, Tencent, MTCaptcha, Amazon WAF at $1.00/1k). Send challenge payloads to the REST API and inject the token/text directly using Selenium with a $0.50 free trial.
⚡ TL;DR: Selenium can't solve CAPTCHAs alone. Image/text captchas work today: screenshot the element → send it to the CaptchaKings API → get the answer text back (~1.2s median) → fill it in. The reCAPTCHA token-injection flow below is a planned preview — see /supported-captchas. Free $0.50 balance on signup — no card required.
📋 Status: Live today via the API: image/text captchas ($0.80 per 1,000, ~1.2s median) plus GeeTest, Tencent, xCaptcha, MTCaptcha and Amazon WAF ($1.00 per 1,000) — measured numbers at /benchmarks. reCAPTCHA, hCaptcha and Cloudflare Turnstile are planned, not yet available — see /supported-captchas.
reCAPTCHA, hCaptcha, and Cloudflare Turnstile are specifically designed to detect browser automation. Even with undetected-chromedriver or selenium-stealth, high-traffic sites will eventually challenge your bot. Fighting the detection is an arms race you will lose — the professional approach is to solve the challenge programmatically and continue your automation flow.
pip install selenium captchakings
# Optional but recommended for fewer detections:
pip install undetected-chromedriver
This flow goes live when reCAPTCHA support launches — see /recaptcha-solver. The image-captcha flow below works today. The preview example opens a page, extracts the sitekey, solves it with CaptchaKings, and injects the token:
import time
from selenium import webdriver
from captchakings import CaptchaKings
API_KEY = "ck_your_api_key_here" # from captchakings.com/dashboard
PAGE_URL = "https://example.com/signup" # page with the reCAPTCHA
client = CaptchaKings(API_KEY)
driver = webdriver.Chrome()
driver.get(PAGE_URL)
# 1. Extract the sitekey rendered on the page
sitekey = driver.execute_script("""
const el = document.querySelector('[data-sitekey]');
return el ? el.getAttribute('data-sitekey') : null;
""")
print("sitekey:", sitekey)
# 2. Ask CaptchaKings to solve it (returns a valid g-recaptcha-response token)
token = client.solve_recaptcha_v2(sitekey=sitekey, page_url=PAGE_URL)
print("token received")
# 3. Inject the token and submit
driver.execute_script("""
document.getElementById('g-recaptcha-response').innerHTML = arguments[0];
document.getElementById('g-recaptcha-response').style.display = 'block';
""", token)
driver.execute_script("document.querySelector('form').submit()")
time.sleep(3)
print("Done:", driver.current_url)
driver.quit()
For classic image captchas, screenshot the element and send it straight to the API:
img = driver.find_element("css selector", "#captcha-image")
img.screenshot("captcha.png")
result = client.solve("captcha.png")
print(result["prediction"], "| confidence:", result["confidence"])
| CAPTCHA Type | Avg. Solve Time | Price / 1,000 |
|---|---|---|
| AWS WAF (Amazon) | ~8 s median | $1.00 |
| Image / Text / Math / Number | ~1.2 s median | $0.80 |
| GeeTest v3 / v4 | ~0.4 s median | $1.00 |
| reCAPTCHA, hCaptcha, Turnstile, FunCaptcha, DataDome | Planned — see the support matrix | |
reCAPTCHA support is planned, not yet live — see /supported-captchas and /recaptcha-solver. At launch you will extract the sitekey, send it to CaptchaKings, inject the returned token into #g-recaptcha-response, then submit the form — exactly as previewed in Step 2 above. Image/text captchas work today via Step 3.
Yes. The solver runs server-side, so it works with any WebDriver flavor: headless Chrome, Firefox, undetected-chromedriver, and remote Selenium Grid / BrowserStack sessions.
Call client.report_bad(task_id) for an automatic refund of that solve, then request a fresh token. Incorrect solves can always be reported for a refund.
🎁 Free $0.50 balance — enough for 625 image captchas or 500 live token solves (GeeTest, Amazon WAF & more). Create your API key →