Selenium drives a real browser, which solves rendering but not captchas: a checkbox still has to be ticked and a challenge still has to be answered. The pattern that works is to let the browser render the widget, extract the sitekey, ask the API for a token, and write that token back into the page before submitting.
For reCAPTCHA the sitekey is on the div with class g-recaptcha as data-sitekey. For hCaptcha it is data-sitekey on the h-captcha div. For Turnstile it is data-sitekey on the cf-turnstile div. In all three cases the fallback is to read the iframe src and take the sitekey from the query string, which also works when the widget is created by script rather than declared in markup.
The field names are g-recaptcha-response, h-captcha-response and cf-turnstile-response respectively. Write the token with execute script rather than send keys, because the fields are usually hidden, and dispatch input and change events afterwards. Some pages expose a callback instead, in which case the token has to be passed to that callback rather than into a field.
One credit per accepted token, twenty for a reCAPTCHA token, with polling free. If what you need is occasional manual browsing rather than a script, the browser extension handles the same challenges in place without any Selenium code at all.
curl -X POST https://fuckcaptcha.top/v1/token/recaptcha2 \\
-H "Authorization: Basic $NSK_KEY" \\
-d '{"sitekey":"<sitekey>","url":"<page url>"}'
Charged per solve: one credit for each recognition request, and polling for the result is free. Signing up includes 200 free solves.
No. It can render the page and click, but the challenge itself has to be answered by something else. The practical pattern is to use Selenium for the browser and an API for the token.
The usual causes are an incorrect url value, injecting into the wrong field, or fetching the token too early so it expires before submission. Check the field name and request the token close to the submit.
It helps when the site checks for automation flags, but it does not replace the solve. The two concerns are separate: stealth gets you a normal looking browser, the API gets you a valid token.
Yes. The widget still renders headlessly, so the sitekey can be read and the token injected. Keep the user agent consistent with the browser you are actually running.
One credit per accepted token, and refused submissions are not charged. Because token solves run at twenty credits for reCAPTCHA, count them separately from cheap image reads when you plan a budget.