{"id":24535,"date":"2026-07-27T17:35:35","date_gmt":"2026-07-27T17:35:35","guid":{"rendered":"https:\/\/capskip.com\/selenium-captcha-solver\/"},"modified":"2026-10-11T06:16:26","modified_gmt":"2026-10-11T06:16:26","slug":"selenium-captcha-solver","status":"publish","type":"page","link":"https:\/\/capskip.com\/zh\/selenium-captcha-solver\/","title":{"rendered":"Selenium \u9a8c\u8bc1\u7801\u8bc6\u522b"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"24535\" class=\"elementor elementor-24535\">\n\t\t\t\t<div class=\"elementor-element elementor-element-405b4866 e-flex e-con-boxed e-con e-parent\" data-id=\"405b4866\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-293d83ea elementor-widget elementor-widget-shortcode\" data-id=\"293d83ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t<div class=\"capskip-landing capskip-landing--framework\" id=\"capskip-landing\">\n\n\t\t\t<header class=\"cskl-hero cskl-hero--split\"><div class=\"cskl-hero__inner\"><div class=\"cskl-hero__copy\"><span class=\"cskl-eyebrow\"><span class=\"cskl-mark cskl-mark--tile\"><svg class=\"csv\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#43b02a\" d=\"M23.17 3.47l-7.42 8.32a.23.23 0 0 1-.33 0l-3.79-3.9a.23.23 0 0 1 0-.28L12.87 6a.23.23 0 0 1 .37 0l2.11 2.35a.23.23 0 0 0 .34 0l5.94-8.09A.16.16 0 0 0 21.5 0H.72a.17.17 0 0 0-.17.17v23.65A.17.17 0 0 0 .72 24h22.57a.17.17 0 0 0 .17-.17V3.6a.16.16 0 0 0-.28-.13zM6.93 21.37a5.71 5.71 0 0 1-4.05-1.44.22.22 0 0 1 0-.29l.88-1.24a.22.22 0 0 1 .33-.04 4.34 4.34 0 0 0 2.96 1.16c1.16 0 1.72-.53 1.72-1.1 0-1.75-5.7-.55-5.7-4.28 0-1.65 1.43-3 3.76-3a5.57 5.57 0 0 1 3.71 1.24.22.22 0 0 1 0 .3l-.91 1.2a.22.22 0 0 1-.32.04 4.29 4.29 0 0 0-2.71-.94c-.91 0-1.41.4-1.41 1 0 1.57 5.69.52 5.69 4.2.01 1.81-1.28 3.18-3.96 3.18zm12.44-3.43a.19.19 0 0 1-.19.19h-5.2a.06.06 0 0 0-.06.07 1.99 1.99 0 0 0 2.11 1.64 3.26 3.26 0 0 0 1.8-.6.19.19 0 0 1 .28.04l.64.93a.2.2 0 0 1-.04.26 4.71 4.71 0 0 1-2.89.9 3.73 3.73 0 0 1-3.93-3.87 3.74 3.74 0 0 1 3.81-3.85c2.2 0 3.68 1.64 3.68 4.05zm-3.68-2.75a1.76 1.76 0 0 0-1.8 1.56.06.06 0 0 0 .06.07h3.49a.06.06 0 0 0 .06-.07 1.7 1.7 0 0 0-1.81-1.56Z\"\/><\/svg><\/span>Selenium<\/span><h1 class=\"cskl-hero__title\">Selenium CAPTCHA Solver for Python and WebDriver Scripts<\/h1><p class=\"cskl-hero__lead\">A reCAPTCHA, a Turnstile check, a GeeTest v3 slider or a warped image should not end a WebDriver session. Give the browser the CapSkip extension or call the SDK from your test, and every solve runs locally with no meter.<\/p><div class=\"cskl-hero__cta\"><a class=\"cskl-btn cskl-btn--go\" href=\"https:\/\/capskip.com\/zh\/product\/trial-license\/\">Start free trial <svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/a><a class=\"cskl-btn cskl-btn--ghost\" href=\"#licenses\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3.5 16.5a4 4 0 1 0 8 0 4 4 0 1 0-8 0M10.4 13.6 20 4\"\/><path class=\"a\" d=\"M17 7l2.5 2.5M14.5 9.5l2 2\"\/><\/svg>Buy a license<\/a><a class=\"cskl-btn cskl-btn--ghost\" href=\"https:\/\/github.com\/capskip\/capskip-python\" target=\"_blank\" rel=\"noopener nofollow\"><svg class=\"cskl-winglyph\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z\"\/><\/svg>View on GitHub<\/a><\/div><div class=\"cskl-trust\"><span>Windows x64<\/span><i>&middot;<\/i><span>Runs locally, so no CAPTCHA leaves your machine<\/span><\/div><ul class=\"cskl-chips\"><li class=\"cskl-chip\">Python, C# and Node.js<\/li><li class=\"cskl-chip\">Extension or SDK route<\/li><li class=\"cskl-chip\">Selenium Grid friendly<\/li><\/ul><\/div><div class=\"cskl-hero__visual\"><div class=\"cskl-box\"><div class=\"cskl-box__top\"><div class=\"cskl-mock cskl-mock--run\" aria-hidden=\"true\"><div class=\"cskl-mock__bar\"><span class=\"cskl-mock__lang\">signup_test.py<\/span><\/div><ul class=\"cskl-run\"><li class=\"is-ok\"><i><\/i>open \/signup<\/li><li class=\"is-ok\"><i><\/i>fill the form<\/li><li class=\"is-run\"><i><\/i>solve the CAPTCHA<\/li><li class=\"is-idle\"><i><\/i>submit<\/li><\/ul><div class=\"cskl-mock__out\"><span class=\"cskl-mock__ok\">&#10003;<\/span><code>4 passed<\/code><span class=\"cskl-mock__meta\">0 blocked<\/span><\/div><\/div><\/div><div class=\"cskl-cost\" data-cskl-cost data-rate=\"1.40\" data-price=\"35\" data-min=\"40000\" data-max=\"250000\"><div class=\"cskl-cost__head\"><span class=\"cskl-cost__lb\">CAPTCHAs a month<\/span><span class=\"cskl-cost__val\" data-cskl-vol>40,000<\/span><\/div><div class=\"cskl-track\"><span class=\"cskl-track__rail\"><\/span><span class=\"cskl-track__fill\" data-cskl-fill><\/span><span class=\"cskl-track__knob\" data-cskl-knob><\/span><input type=\"range\" min=\"40000\" max=\"250000\" step=\"1000\" value=\"40000\" autocomplete=\"off\" data-cskl-slider aria-label=\"CAPTCHAs a month\"><\/div><div class=\"cskl-track__sc\"><span>40.0k<\/span><span>250.0k<\/span><\/div><div class=\"cskl-bars\"><div class=\"cskl-bar cskl-bar--them\"><div class=\"cskl-bar__lb\"><span>Metered elsewhere, about $1.40 per 1,000<\/span><b>$<span data-cskl-them>56.00<\/span><\/b><\/div><div class=\"cskl-bar__rail\"><i data-cskl-thembar style=\"width:16.00%\"><\/i><\/div><\/div><div class=\"cskl-bar cskl-bar--us\"><div class=\"cskl-bar__lb\"><span>CapSkip Bronze, flat<\/span><b>$35.00<\/b><\/div><div class=\"cskl-bar__rail\"><i class=\"cskl-bar__flat\"><\/i><\/div><\/div><\/div><div class=\"cskl-keep\"><span class=\"cskl-keep__n\">$<span data-cskl-keep>21.00<\/span><\/span><span class=\"cskl-keep__t\"><b>stays in your pocket<\/b>every month, at this volume<\/span><\/div><\/div><\/div><\/div><\/div><div class=\"cskl-typestrip\"><div class=\"cskl-typestrip__inner\"><b>Also solves<\/b><a class=\"\" href=\"https:\/\/capskip.com\/zh\/cloudflare-turnstile-solver\/\">Turnstile<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/recaptcha-v2-solver\/\">reCAPTCHA v2<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/recaptcha-v2-callback-solver\/\">v2 Callback<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/recaptcha-v2-invisible-solver\/\">v2 Invisible<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/recaptcha-v3-solver\/\">v3<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/recaptcha-enterprise-solver\/\">Enterprise<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/image-captcha-solver\/\">Image CAPTCHA<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/geetest-solver\/\">GeeTest v3<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/capy-puzzle-solver\/\">Capy Puzzle<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/altcha-solver\/\">ALTCHA<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/captchafox-solver\/\">CaptchaFox<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/friendly-captcha-solver\/\">Friendly Captcha<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/aws-waf-captcha-solver\/\">AWS WAF<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/datadome-solver\/\">DataDome<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/mtcaptcha-solver\/\">MTCaptcha<\/a><a class=\"\" href=\"https:\/\/capskip.com\/zh\/hcaptcha-solver\/\">hCaptcha<\/a><\/div><\/div><\/header>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<section class=\"cskl-intro\">\n\t\t\t\t\t<div class=\"cskl-intro__stage\" aria-hidden=\"true\">\n\t\t\t\t\t\t<span class=\"cskl-intro__ring\"><\/span>\n\t\t\t\t\t\t<span class=\"cskl-intro__ring cskl-intro__ring--outer\"><\/span>\n\t\t\t\t\t\t<span class=\"cskl-intro__orbit\"><i><\/i><\/span>\n\t\t\t\t\t\t<span class=\"cskl-intro__orbit cskl-intro__orbit--outer\"><i><\/i><\/span>\n\t\t\t\t\t\t<span class=\"cskl-intro__float\">\n\t\t\t\t\t\t\t<span class=\"cskl-intro__halo\"><\/span>\n\t\t\t\t\t\t\t<span class=\"cskl-intro__tile\"><span class=\"cskl-mark cskl-mark--tile\"><svg class=\"csv\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#43b02a\" d=\"M23.17 3.47l-7.42 8.32a.23.23 0 0 1-.33 0l-3.79-3.9a.23.23 0 0 1 0-.28L12.87 6a.23.23 0 0 1 .37 0l2.11 2.35a.23.23 0 0 0 .34 0l5.94-8.09A.16.16 0 0 0 21.5 0H.72a.17.17 0 0 0-.17.17v23.65A.17.17 0 0 0 .72 24h22.57a.17.17 0 0 0 .17-.17V3.6a.16.16 0 0 0-.28-.13zM6.93 21.37a5.71 5.71 0 0 1-4.05-1.44.22.22 0 0 1 0-.29l.88-1.24a.22.22 0 0 1 .33-.04 4.34 4.34 0 0 0 2.96 1.16c1.16 0 1.72-.53 1.72-1.1 0-1.75-5.7-.55-5.7-4.28 0-1.65 1.43-3 3.76-3a5.57 5.57 0 0 1 3.71 1.24.22.22 0 0 1 0 .3l-.91 1.2a.22.22 0 0 1-.32.04 4.29 4.29 0 0 0-2.71-.94c-.91 0-1.41.4-1.41 1 0 1.57 5.69.52 5.69 4.2.01 1.81-1.28 3.18-3.96 3.18zm12.44-3.43a.19.19 0 0 1-.19.19h-5.2a.06.06 0 0 0-.06.07 1.99 1.99 0 0 0 2.11 1.64 3.26 3.26 0 0 0 1.8-.6.19.19 0 0 1 .28.04l.64.93a.2.2 0 0 1-.04.26 4.71 4.71 0 0 1-2.89.9 3.73 3.73 0 0 1-3.93-3.87 3.74 3.74 0 0 1 3.81-3.85c2.2 0 3.68 1.64 3.68 4.05zm-3.68-2.75a1.76 1.76 0 0 0-1.8 1.56.06.06 0 0 0 .06.07h3.49a.06.06 0 0 0 .06-.07 1.7 1.7 0 0 0-1.81-1.56Z\"\/><\/svg><\/span><\/span>\n\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"cskl-intro__copy\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Sooner or later a WebDriver run hits a login, search or sign-up form guarded by a challenge, and that is where a Selenium CAPTCHA solver comes in. Selenium can locate elements, click and type, yet it cannot produce a reCAPTCHA token or read warped letters, so the test stalls and the report fills with timeouts. CapSkip sits beside the driver, on the same Windows computer, or on a VPS that the script can reach, and hands back the answer while the browser waits.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p>There are two ways to wire it in, and they suit different Selenium habits. The no-code route launches a Chrome or Firefox profile that already carries the CapSkip extension, so widgets clear inside the page as if a person had ticked them. The scripted route keeps control in your test: pip install capskip, read the sitekey with find_element, call solver.recaptcha() or solver.turnstile(), and write the token back with execute_script. Image CAPTCHAs return as text in about 0.1 seconds.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p>On the token side CapSkip covers reCAPTCHA v2, v3 and Enterprise plus Cloudflare Turnstile. GeeTest v3 slides, Capy puzzles, CaptchaFox and AWS WAF CAPTCHA are included too, as are the proof-of-work checks behind ALTCHA and Friendly Captcha. Image CAPTCHAs span thousands of variants, and hCaptcha is covered too, invisible and Enterprise widgets included. FunCaptcha and GeeTest v4 are not supported. Nothing is metered, so a nightly regression that trips hundreds of challenges is billed exactly like one that trips none.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\n\t\t\t\t\t\t\t\t\t<section class=\"cskl-callout\">\n\t\t\t\t<span class=\"cskl-callout__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M13.25 2.75 5.25 13.25h6.5l-1 8 8-10.5h-6.5z\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t<p><strong>Your driver code can stay as it is.<\/strong> Put the CapSkip extension into a browser profile, start Selenium with that profile while the app runs, and challenges clear on their own as your explicit waits tick. Switch to the SDK only when a test needs the answer in hand. <a href=\"https:\/\/capskip.com\/extension-guide\/\">Read the extension guide<\/a><\/p>\n\t\t\t\t\t\t\t<\/section>\n\n\t\t\t\t\t\t<section class=\"cskl-section cskl-features\" aria-label=\"Why CapSkip\">\n\t\t\t\t<div class=\"cskl-section__head\">\n\t\t\t\t\t<h2>What the Selenium CAPTCHA solver does for WebDriver<\/h2>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"cskl-feature-grid\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cskl-feature\">\n\t\t\t\t\t\t\t<span class=\"cskl-feature__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M8.25 6.75V5.25a2 2 0 0 1 4 0v1.5h3.5a1.5 1.5 0 0 1 1.5 1.5v3.5h1.5a2 2 0 0 1 0 4h-1.5v3.5a1.5 1.5 0 0 1-1.5 1.5h-3.5v-1.5a2 2 0 0 0-4 0v1.5h-3.5a1.5 1.5 0 0 1-1.5-1.5v-3.5h1.5a2 2 0 0 0 0-4h-1.5v-3.5a1.5 1.5 0 0 1 1.5-1.5z\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>A solving profile for Chrome or Firefox<\/h3>\n\t\t\t\t\t\t\t<p>Install the extension once in a dedicated Chrome profile and hand it to the driver with user-data-dir, or load the Firefox add-on via install_addon(). Every window Selenium opens can then solve, as long as the app is running.<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cskl-feature\">\n\t\t\t\t\t\t\t<span class=\"cskl-feature__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M8.5 7l-5 5 5 5M15.5 7l5 5-5 5\"\/><path class=\"a\" d=\"M13.5 4.5l-3 15\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>Token calls from the same test file<\/h3>\n\t\t\t\t\t\t\t<p>Read data-sitekey with find_element, pass it plus driver.current_url to solver.recaptcha(), and set g-recaptcha-response through execute_script. The browser stays under your script while the app works.<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cskl-feature\">\n\t\t\t\t\t\t\t<span class=\"cskl-feature__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 12a9 9 0 1 0 18 0 9 9 0 1 0-18 0M7 12a5 5 0 1 0 10 0 5 5 0 1 0-10 0\"\/><path class=\"a\" d=\"M11.12 12a.88.88 0 1 0 1.75 0 .88.88 0 1 0-1.75 0\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>Image text taken from the live element<\/h3>\n\t\t\t\t\t\t\t<p>Grab the picture with screenshot_as_base64 and send it to solver.normal(). Since nothing requests the image twice, the text you type with send_keys matches what this session was shown.<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cskl-feature\">\n\t\t\t\t\t\t\t<span class=\"cskl-feature__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3.5 12l8.5 4.5 8.5-4.5M3.5 16l8.5 4.5 8.5-4.5\"\/><path class=\"a\" d=\"M12 3.5 20.5 8 12 12.5 3.5 8z\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>Pairs with undetected-chromedriver<\/h3>\n\t\t\t\t\t\t\t<p>Stealth drivers such as undetected-chromedriver and SeleniumBase UC mode make challenges rarer. CapSkip clears the ones that still slip through, so the two tools cover different halves of the problem.<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cskl-feature\">\n\t\t\t\t\t\t\t<span class=\"cskl-feature__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 8h15M15.5 4.5 19 8l-3.5 3.5M20 16H5M8.5 12.5 5 16l3.5 3.5\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>Old 2Captcha helpers keep running<\/h3>\n\t\t\t\t\t\t\t<p>Helpers you built around 2Captcha or Anti-Captcha need no edits. Choose that service as the emulator in the app, click Add beside Hosts file, and CapSkip answers those calls itself.<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cskl-feature\">\n\t\t\t\t\t\t\t<span class=\"cskl-feature__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 12c-1.9-2.5-3.6-3.75-5.25-3.75a3.75 3.75 0 0 0 0 7.5C8.4 15.75 10.1 14.5 12 12zm0 0c1.9 2.5 3.6 3.75 5.25 3.75a3.75 3.75 0 0 0 0-7.5C15.6 8.25 13.9 9.5 12 12z\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>Parallel drivers on one subscription<\/h3>\n\t\t\t\t\t\t\t<p>Run as many WebDriver instances as the machine can hold. Threads are never capped by the plan, and a suite that meets hundreds of challenges adds nothing to the monthly bill.<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/section>\n\n\t\t\t\t\t\t<section class=\"cskl-section cskl-ways\" aria-label=\"How to integrate\">\n\t\t\t\t<div class=\"cskl-section__head\">\n\t\t\t\t\t<h2>Pick how your WebDriver code reaches CapSkip<\/h2>\n\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"cskl-codewrap\">\n\t\t\t\t\t\t<div class=\"csk-code csk-code-python\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">Python<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>from selenium import webdriver\nfrom capskip import CapSkip\n\ndriver = webdriver.Chrome()\ndriver.get(&quot;https:\/\/example.com\/login&quot;)\n\nsolver = CapSkip(host=&quot;127.0.0.1&quot;, port=8080)\nsitekey = driver.find_element(&quot;css selector&quot;, &quot;.g-recaptcha&quot;).get_attribute(&quot;data-sitekey&quot;)\n\ntoken = solver.recaptcha(sitekey=sitekey, url=driver.current_url)[&quot;code&quot;]\n\n# Inject the token and submit\ndriver.execute_script(\n    &quot;document.getElementById(&#039;g-recaptcha-response&#039;).innerHTML = arguments[0];&quot;,\n    token,\n)\ndriver.find_element(&quot;css selector&quot;, &quot;button[type=submit]&quot;).click()<\/code><\/pre><\/div>\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"cskl-code-caption\">Python Selenium: read the sitekey from the widget, ask CapSkip for a token, write it into the response field and click submit.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t<div class=\"cskl-ways-grid\">\n\t\t\t\t\t<div class=\"cskl-way\">\n\t\t\t\t\t\t<span class=\"cskl-way__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M8.25 6.75V5.25a2 2 0 0 1 4 0v1.5h3.5a1.5 1.5 0 0 1 1.5 1.5v3.5h1.5a2 2 0 0 1 0 4h-1.5v3.5a1.5 1.5 0 0 1-1.5 1.5h-3.5v-1.5a2 2 0 0 0-4 0v1.5h-3.5a1.5 1.5 0 0 1-1.5-1.5v-3.5h1.5a2 2 0 0 0 0-4h-1.5v-3.5a1.5 1.5 0 0 1 1.5-1.5z\"\/><\/svg><\/span>\n\t\t\t\t\t\t<h3>Extension inside the Selenium profile<\/h3>\n\t\t\t\t\t\t<p>Load the Chrome or Firefox extension into the profile Selenium launches. Widgets are solved in place, so your test carries no solving code at all.<\/p>\n\t\t\t\t\t\t<div class=\"cskl-way__links\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/chromewebstore.google.com\/detail\/capskip-%E2%80%93-unlimited-captc\/mgciphejglphomemchljofgoeakdfccl\" rel=\"noopener nofollow\" target=\"_blank\">Chrome<\/a>\n\t\t\t\t\t\t\t\t<a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/capskip-captcha-solver\/\" rel=\"noopener nofollow\" target=\"_blank\">Firefox<\/a>\n\t\t\t\t\t\t\t\t<a href=\"https:\/\/capskip.com\/zh\/extension-guide\/\">Extension guide<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"cskl-way\">\n\t\t\t\t\t\t<span class=\"cskl-way__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-10a3 3 0 0 1 3-3zM7 9.5l3 2.5-3 2.5\"\/><path class=\"a\" d=\"M12.5 15H17\"\/><\/svg><\/span>\n\t\t\t\t\t\t<h3>SDK calls next to your locators<\/h3>\n\t\t\t\t\t\t<p>Python, Node.js, PHP and C# clients hand back tokens and image text ready for execute_script or send_keys in the WebDriver binding you use.<\/p>\n\t\t\t\t\t\t<div class=\"cskl-way__links\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/capskip.com\/zh\/captcha-solving-sdk\/\">All SDKs<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/capskip.com\/api-docs\/#recaptcha-v2\">API reference<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"cskl-way\">\n\t\t\t\t\t\t<span class=\"cskl-way__icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M9 3v4M15 3v4M6.5 7h11v3.5a5.5 5.5 0 0 1-11 0z\"\/><path class=\"a\" d=\"M12 16v5\"\/><\/svg><\/span>\n\t\t\t\t\t\t<h3>Local API for every other binding<\/h3>\n\t\t\t\t\t\t<p>Java and other bindings without an SDK can call the HTTP API directly, and Selenium code built for 2Captcha style services works once the emulator is on.<\/p>\n\t\t\t\t\t\t<div class=\"cskl-way__links\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/capskip.com\/zh\/api-docs\/\">API docs<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/capskip.com\/zh\/2captcha-api-alternative\/\">2Captcha API emulation<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/section>\n\n\t\t\t\t\t\t\t\t\t\t<section class=\"cskl-demo\">\n\t\t\t\t\t<div class=\"cskl-demo__text\">\n\t\t\t\t\t\t<h2>Try your Selenium script on a live reCAPTCHA<\/h2>\n\t\t\t\t\t\t<p>Aim your WebDriver at our reCAPTCHA v2 demo page, run the solve step against the real Google widget, and watch the form accept the token before you point it at your own targets.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"cskl-demo__cta\">\n\t\t\t\t\t\t<a class=\"cskl-btn cskl-btn--primary\" href=\"https:\/\/capskip.com\/captcha-demo\/recaptcha-v2\/\">Try a live reCAPTCHA demo <svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"cskl-btn cskl-btn--ghost\" href=\"https:\/\/capskip.com\/zh\/captcha-demo\/\">All CAPTCHA demos<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\n\t\t\t\t\t\t<section class=\"cskl-section cskl-how\" aria-label=\"How to solve\">\n\t\t\t\t<div class=\"cskl-section__head\">\n\t\t\t\t\t<h2>Get CapSkip ready beside your Selenium suite<\/h2>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<ol class=\"cskl-steps\">\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<span class=\"cskl-steps__num cskl-steps__num--icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 4v11M7 10.5l5 5 5-5M5 20h14\"\/><\/svg><\/span>\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Install CapSkip on the test machine<\/h3>\n\t\t\t\t\t\t\t<p>Install CapSkip on the Windows desktop or VPS that executes your WebDriver scripts, or on any box those scripts can reach over the network, and keep it running while tests run. <a href=\"https:\/\/capskip.com\/download-capskip\/\">Download the installer<\/a><\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<span class=\"cskl-steps__num cskl-steps__num--icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14 4h3.5A2.5 2.5 0 0 1 20 6.5v11a2.5 2.5 0 0 1-2.5 2.5H14M4 12h10.5M10.5 8l4 4-4 4\"\/><\/svg><\/span>\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Activate a plan or the free trial<\/h3>\n\t\t\t\t\t\t\t<p>Use the login details emailed with your order to sign in to CapSkip. The trial gives one device three days and 500 solves, enough to run a suite against real targets. <a href=\"https:\/\/capskip.com\/product\/trial-license\/\">Start the free trial<\/a><\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<span class=\"cskl-steps__num cskl-steps__num--icon\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 20 14 10\"\/><path class=\"a\" d=\"M17.5 3.5l.95 2.05 2.05.95-2.05.95-.95 2.05-.95-2.05-2.05-.95 2.05-.95zM10.5 4v2.5M9.25 5.25h2.5\"\/><\/svg><\/span>\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Add the solve step to your driver<\/h3>\n\t\t\t\t\t\t\t<p>Either launch Selenium with the extension profile, or pip install capskip and call the solver wherever a challenge interrupts your flow. Every method and option is documented. <a href=\"https:\/\/capskip.com\/api-docs\/\">Open the API docs<\/a><\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/li>\n\t\t\t\t<\/ol>\n\t\t\t<\/section>\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<section class=\"cskl-section cskl-compare\" aria-label=\"Comparison\">\n\t\t\t\t\t<div class=\"cskl-section__head\">\n\t\t\t\t\t\t<h2>Local solving vs per-solve APIs inside Selenium<\/h2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"cskl-section__sub\">How CapSkip and services such as 2Captcha differ once your Selenium runs meet challenges every day.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"cskl-table-scroll\">\n\t\t\t\t\t\t<table class=\"cskl-table\">\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th scope=\"col\">Feature<\/th>\n\t\t\t\t\t\t\t\t\t<th scope=\"col\" class=\"is-us\">CapSkip<\/th>\n\t\t\t\t\t\t\t\t\t<th scope=\"col\">2Captcha &amp; API services<\/th>\n\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t<\/thead>\n\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th scope=\"row\">What a full test run costs<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">The same monthly plan from $35, however many solves<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Every solve billed, so a bigger suite means a bigger bill<\/td>\n\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th scope=\"row\">Where the challenge is solved<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">On the machine driving your browsers, or a VPS<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>On remote servers, often by human workers<\/td>\n\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th scope=\"row\">Image CAPTCHA turnaround<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">About 0.1 seconds, no trip across the internet<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Several seconds, plus a network round trip per image<\/td>\n\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th scope=\"row\">Code you already wrote for 2Captcha<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">Keeps working through the built-in emulator<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Tied to that vendor API and its balance<\/td>\n\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th scope=\"row\">Session screenshots and challenge data<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">Stay on your own machine<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Sent to a third-party service for every solve<\/td>\n\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th scope=\"row\">Parallel WebDriver sessions<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">No thread cap from the plan, only your hardware<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Extra concurrency often costs more<\/td>\n\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th scope=\"row\">Ways to plug into Selenium<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">Extension profile, Python or .NET client, or plain HTTP calls<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>API key, prepaid credits and their own client<\/td>\n\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/tbody>\n\t\t\t\t\t\t<\/table>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<section class=\"cskl-section cskl-pricing\" id=\"licenses\" aria-label=\"Licenses\">\n\t\t\t\t<section class=\"cskpr cskpr--compact\" data-no-translation><div class=\"cskpr-in\"><div class=\"cskpr-head\"><p class=\"cskpr-eyebrow\"><span class=\"cskpr-dot\"><\/span>\u4ef7\u683c<\/p><h2 class=\"cskpr-h2\">\u4e0d\u518d<em>\u6309\u6b21\u4ed8\u8d39<\/em><\/h2><\/div><div class=\"cskpr-card\"><p class=\"cskpr-lab\">\u9009\u62e9\u4f60\u7684\u6388\u6743<\/p><div class=\"cskpr-tiers\" role=\"group\" aria-label=\"\u9009\u62e9\u4f60\u7684\u6388\u6743\"><button type=\"button\" class=\"cskpr-tier is-on\" data-i=\"0\" aria-pressed=\"true\"><span class=\"cskpr-marktile\"><svg class=\"cskpr-mark\" viewBox=\"0 0 90 90\" width=\"44\" height=\"44\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20 0H70A20 20 0 0 1 90 20V70A20 20 0 0 1 70 90H0V20A20 20 0 0 1 20 0Z\" fill=\"#d08848\"\/><path d=\"M20 42V30A25 20 0 0 1 70 30A5 5 0 0 1 60 30A15 10 0 0 0 30 30V42Z\" fill=\"#0a0e14\"\/><rect x=\"15\" y=\"40\" width=\"60\" height=\"35\" rx=\"5\" fill=\"#0a0e14\"\/><path d=\"M45 45A10 10 0 0 1 50 63.66V65A5 5 0 0 1 40 65V63.66A10 10 0 0 1 45 45Z\" fill=\"#d08848\"\/><\/svg><\/span><span class=\"cskpr-tiertext\"><span class=\"cskpr-tiername\">\u9752\u94dc<\/span><span class=\"cskpr-dev\"><span class=\"cskpr-screens\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v6.5a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-6.5a3 3 0 0 1 3-3zM8.5 20h7M12 16.5V20\"\/><\/svg><\/span><span class=\"cskpr-devtext\">1 \u53f0\u8bbe\u5907<\/span><\/span><\/span><span class=\"cskpr-tierprice\"><span class=\"cskpr-amt\">$35<\/span><span class=\"cskpr-per\">\/ \u6708<\/span><span class=\"cskpr-pd\">\u6bcf\u53f0\u8bbe\u5907 $35<\/span><span class=\"cskpr-pf\" hidden><\/span><\/span><\/button><button type=\"button\" class=\"cskpr-tier\" data-i=\"1\"><span class=\"cskpr-badge\">2 \u500d\u541e\u5410\u91cf<\/span><span class=\"cskpr-marktile\"><svg class=\"cskpr-mark\" viewBox=\"0 0 90 90\" width=\"44\" height=\"44\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20 0H70A20 20 0 0 1 90 20V70A20 20 0 0 1 70 90H0V20A20 20 0 0 1 20 0Z\" fill=\"#c0c0c0\"\/><path d=\"M20 42V30A25 20 0 0 1 70 30A5 5 0 0 1 60 30A15 10 0 0 0 30 30V42Z\" fill=\"#0a0e14\"\/><rect x=\"15\" y=\"40\" width=\"60\" height=\"35\" rx=\"5\" fill=\"#0a0e14\"\/><path d=\"M45 45A10 10 0 0 1 50 63.66V65A5 5 0 0 1 40 65V63.66A10 10 0 0 1 45 45Z\" fill=\"#c0c0c0\"\/><\/svg><\/span><span class=\"cskpr-tiertext\"><span class=\"cskpr-tiername\">\u767d\u94f6<\/span><span class=\"cskpr-dev\"><span class=\"cskpr-screens\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v6.5a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-6.5a3 3 0 0 1 3-3zM8.5 20h7M12 16.5V20\"\/><\/svg><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v6.5a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-6.5a3 3 0 0 1 3-3zM8.5 20h7M12 16.5V20\"\/><\/svg><\/span><span class=\"cskpr-devtext\">2 \u53f0\u8bbe\u5907<\/span><\/span><\/span><span class=\"cskpr-tierprice\"><span class=\"cskpr-amt\">$60<\/span><span class=\"cskpr-per\">\/ \u6708<\/span><span class=\"cskpr-pd is-save\">\u6bcf\u53f0\u8bbe\u5907 $30<\/span><span class=\"cskpr-pf\" hidden><\/span><\/span><\/button><button type=\"button\" class=\"cskpr-tier\" data-i=\"2\"><span class=\"cskpr-badge cskpr-badge--best\">3 \u500d\u541e\u5410\u91cf<\/span><span class=\"cskpr-marktile\"><svg class=\"cskpr-mark\" viewBox=\"0 0 90 90\" width=\"44\" height=\"44\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20 0H70A20 20 0 0 1 90 20V70A20 20 0 0 1 70 90H0V20A20 20 0 0 1 20 0Z\" fill=\"#ffd703\"\/><path d=\"M20 42V30A25 20 0 0 1 70 30A5 5 0 0 1 60 30A15 10 0 0 0 30 30V42Z\" fill=\"#0a0e14\"\/><rect x=\"15\" y=\"40\" width=\"60\" height=\"35\" rx=\"5\" fill=\"#0a0e14\"\/><path d=\"M45 45A10 10 0 0 1 50 63.66V65A5 5 0 0 1 40 65V63.66A10 10 0 0 1 45 45Z\" fill=\"#ffd703\"\/><\/svg><\/span><span class=\"cskpr-tiertext\"><span class=\"cskpr-tiername\">\u9ec4\u91d1<\/span><span class=\"cskpr-dev\"><span class=\"cskpr-screens\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v6.5a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-6.5a3 3 0 0 1 3-3zM8.5 20h7M12 16.5V20\"\/><\/svg><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v6.5a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-6.5a3 3 0 0 1 3-3zM8.5 20h7M12 16.5V20\"\/><\/svg><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v6.5a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-6.5a3 3 0 0 1 3-3zM8.5 20h7M12 16.5V20\"\/><\/svg><\/span><span class=\"cskpr-devtext\">3 \u53f0\u8bbe\u5907<\/span><\/span><\/span><span class=\"cskpr-tierprice\"><span class=\"cskpr-amt\">$75<\/span><span class=\"cskpr-per\">\/ \u6708<\/span><span class=\"cskpr-pd is-save\">\u6bcf\u53f0\u8bbe\u5907 $25<\/span><span class=\"cskpr-pf\" hidden><\/span><\/span><\/button><\/div><div class=\"cskpr-hr2\"><\/div><div class=\"cskpr-body\"><div class=\"cskpr-buy\"><p class=\"cskpr-selrow\"><span class=\"cskpr-marktile cskpr-marktile--sm\" id=\"cskpr-selmark\"><svg class=\"cskpr-mark\" viewBox=\"0 0 90 90\" width=\"36\" height=\"36\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20 0H70A20 20 0 0 1 90 20V70A20 20 0 0 1 70 90H0V20A20 20 0 0 1 20 0Z\" fill=\"#d08848\"\/><path d=\"M20 42V30A25 20 0 0 1 70 30A5 5 0 0 1 60 30A15 10 0 0 0 30 30V42Z\" fill=\"#0a0e14\"\/><rect x=\"15\" y=\"40\" width=\"60\" height=\"35\" rx=\"5\" fill=\"#0a0e14\"\/><path d=\"M45 45A10 10 0 0 1 50 63.66V65A5 5 0 0 1 40 65V63.66A10 10 0 0 1 45 45Z\" fill=\"#d08848\"\/><\/svg><\/span><span class=\"cskpr-selname\" id=\"cskpr-selname\">\u9752\u94dc\u6388\u6743<\/span><\/p><p class=\"cskpr-pricerow\"><s class=\"cskpr-was\" id=\"cskpr-was\" hidden><\/s><span class=\"cskpr-price\" id=\"cskpr-price\">$35<\/span><span class=\"cskpr-priceper\">\/ \u6708<\/span><\/p><p class=\"cskpr-promo\" id=\"cskpr-promo\" hidden><\/p><a class=\"cskpr-cta\" id=\"cskpr-cta\" href=\"https:\/\/capskip.com\/zh\/product\/bronze-license\/\"><span id=\"cskpr-ctatext\">\u8ba2\u9605\u9752\u94dc\u6388\u6743<\/span><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/a><p class=\"cskpr-instant\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M13.25 2.75 5.25 13.25h6.5l-1 8 8-10.5h-6.5z\"\/><\/svg><span>\u6388\u6743\u5373\u65f6\u6fc0\u6d3b<\/span><\/p><p class=\"cskpr-fine\">\u6309\u6708\u8ba1\u8d39\uff0c\u53ef\u968f\u65f6\u5728\u8d26\u6237\u4e2d\u53d6\u6d88\u3002<\/p><\/div><div class=\"cskpr-rule2\"><\/div><div class=\"cskpr-feats\"><p class=\"cskpr-ftitle\">\u529f\u80fd\u76f8\u540c\uff0c\u673a\u5668\u8d8a\u591a\uff0c\u541e\u5410\u91cf\u8d8a\u5927\u3002<\/p><p class=\"cskpr-fsub\">\u6bcf\u53f0\u673a\u5668\u7684\u8bc6\u522b\u901f\u5ea6\u90fd\u53d7\u9650\u4e8e\u5b83\u81ea\u5df1\u7684 CPU \u548c\u5185\u5b58\u3002\u673a\u5668\u8d8a\u591a\uff0c\u540c\u65f6\u8fd0\u884c\u7684\u7ebf\u7a0b\u5c31\u8d8a\u591a\uff1a\u767d\u94f6\u53ef\u540c\u65f6\u8bc6\u522b\u4e24\u500d\u6570\u91cf\u7684\u9a8c\u8bc1\u7801\uff0c\u9ec4\u91d1\u5219\u662f\u4e09\u500d\u3002<\/p><ul class=\"cskpr-list\"><li><svg class=\"csi cskpr-ck\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg><span>\u65e0\u9650\u89e3\u51b3\uff0c\u65e0\u6bcf\u65e5\u4e0a\u9650<\/span><\/li><li><svg class=\"csi cskpr-ck\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg><span>\u65e0\u9650\u7ebf\u7a0b\uff0c\u901f\u5ea6\u968f\u786c\u4ef6\u63d0\u5347<\/span><\/li><li><svg class=\"csi cskpr-ck\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg><span>90% \u81f3 100% \u7684\u8bc6\u522b\u51c6\u786e\u7387<\/span><\/li><li><svg class=\"csi cskpr-ck\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg><span>\u53ef\u76f4\u63a5\u66ff\u4ee3\u4e3b\u6d41\u6253\u7801\u670d\u52a1\u7684 API<\/span><\/li><li><svg class=\"csi cskpr-ck\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg><span>\u51e0\u4e4e\u517c\u5bb9\u4efb\u4f55\u5de5\u5177\uff0c\u65e0\u9700\u7f16\u5199\u4ee3\u7801<\/span><\/li><li><svg class=\"csi cskpr-ck\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg><span>REST API\u3001SDK \u548c\u6d4f\u89c8\u5668\u6269\u5c55<\/span><\/li><li><svg class=\"csi cskpr-ck\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg><span>\u51fa\u73b0\u65b0\u7684\u9a8c\u8bc1\u7801\u7c7b\u578b\u65f6\u514d\u8d39\u8bad\u7ec3<\/span><\/li><li><svg class=\"csi cskpr-ck\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg><span>\u5728\u4f60\u81ea\u5df1\u7684\u673a\u5668\u4e0a\u8fd0\u884c\uff0c\u6570\u636e\u4e0d\u5916\u4f20<\/span><\/li><\/ul><p class=\"cskpr-cov\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 19.5v-15M6 10.5l6-6 6 6\"\/><\/svg><span>\u4e0a\u9762\u5c55\u793a\u7684\u6bcf\u4e00\u79cd\u9a8c\u8bc1\u7801\u7c7b\u578b\uff0c\u6bcf\u4e2a\u6388\u6743\u90fd\u652f\u6301\u3002 <a href=\"https:\/\/capskip.com\/zh\/#coverage\">\u67e5\u770b\u652f\u6301\u8303\u56f4<\/a><\/span><\/p><\/div><\/div><\/div><\/div><\/section>\n\t\t\t\t\t\t\t\t<div class=\"cskl-trialnote\">\n\t\t\t\t\t<div class=\"cskl-trialnote__text\">\n\t\t\t\t\t\t<h3>Just want to try it first?<\/h3>\n\t\t\t\t\t\t<p>Start with a free 3-day trial and solve 500 CAPTCHAs of any type on your own targets.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<a class=\"cskl-btn cskl-btn--ghost\" href=\"https:\/\/capskip.com\/zh\/product\/trial-license\/\">Start the free trial<\/a>\n\t\t\t\t<\/div>\n\t\t\t<\/section>\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<section class=\"cskl-section cskl-related\" aria-label=\"Related pages\">\n\t\t\t<div class=\"cskl-section__head\">\n\t\t\t\t<h2>Related CAPTCHA solvers &amp; guides<\/h2>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"cskl-related-grid\">\n\t\t\t\t\t\t\t\t\t<a class=\"cskl-related-card\" href=\"https:\/\/capskip.com\/zh\/python-captcha-solver\/\">\n\t\t\t\t\t\t<span class=\"cskl-related-card__icon cskl-related-card__icon--mark\"><svg class=\"csv\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#3776ab\" d=\"M14.24.24l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.52l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.79l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.04H3.21l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.04-.05-1.22.06-1.21.16-1.03.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.12v-.83H6.21l-.01-2.74-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.26.05zm-6.27 1.97-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.02 3.93.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.03.05 1.22-.06 1.22-.16 1.03-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.18v.82h5.81l.01 2.75.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.26-.04-1.06-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.31l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.81l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.1h2.08l.14.01zm-6.44 14.18-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\"\/><\/svg><\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__body\">\n\t\t\t\t\t\t\t<span class=\"cskl-related-card__title\">Python CAPTCHA Solver<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"cskl-related-card__blurb\">pip install capskip<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__arrow\" aria-hidden=\"true\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a class=\"cskl-related-card\" href=\"https:\/\/capskip.com\/zh\/playwright-captcha-solver\/\">\n\t\t\t\t\t\t<span class=\"cskl-related-card__icon cskl-related-card__icon--mark\"><svg class=\"csv\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#2d4552\" d=\"M7.91 13.17C7.01 13.42 6.43 13.87 6.04 14.31 6.41 13.99 6.91 13.69 7.58 13.5 8.26 13.3 8.85 13.31 9.33 13.4V13.02C8.92 12.98 8.45 13.01 7.91 13.17ZM6 9.99 2.67 10.87C2.67 10.87 2.73 10.95 2.84 11.07L5.67 10.32C5.67 10.32 5.63 10.84 5.28 11.3 5.94 10.8 6 9.99 6 9.99ZM8.78 17.81C4.1 19.07 1.62 13.64.87 10.83.53 9.53.38 8.54.34 7.91.33 7.84.33 7.79.34 7.74.1 7.75-.02 7.88 0 8.24.04 8.88.19 9.86.54 11.16 1.29 13.98 3.77 19.4 8.45 18.14 9.47 17.87 10.24 17.37 10.81 16.73 10.28 17.21 9.62 17.58 8.78 17.81ZM9.66 6.67V7H11.5C11.46 6.88 11.42 6.78 11.39 6.67H9.66ZM11.91 9.41C12.74 9.65 13.17 10.23 13.4 10.74L14.33 11C14.33 11 14.2 9.21 12.58 8.75 11.06 8.32 10.13 9.59 10.01 9.75 10.45 9.44 11.1 9.18 11.91 9.41ZM19.24 10.75C17.72 10.31 16.79 11.59 16.68 11.75 17.12 11.44 17.76 11.18 18.58 11.41 19.4 11.65 19.84 12.23 20.07 12.74L20.99 13C20.99 13 20.86 11.21 19.24 10.75ZM18.33 15.48 10.67 13.34C10.67 13.34 10.75 13.76 11.07 14.3L17.52 16.1C18.05 15.8 18.33 15.48 18.33 15.48ZM13.02 20.09C6.95 18.46 7.68 10.73 8.66 7.07 9.07 5.56 9.48 4.44 9.83 3.69 9.62 3.64 9.45 3.75 9.28 4.09 8.92 4.84 8.45 6.04 8 7.74 7.02 11.4 6.28 19.13 12.35 20.75 15.21 21.52 17.44 20.35 19.1 18.53 17.52 19.95 15.51 20.75 13.02 20.09Z\"\/><path fill=\"#e2574c\" d=\"M9.66 16V14.44L5.33 15.67C5.33 15.67 5.65 13.81 7.91 13.17 8.6 12.97 9.18 12.97 9.66 13.07V6.67H11.83C11.6 5.94 11.37 5.38 11.18 4.99 10.86 4.34 10.53 4.77 9.79 5.39 9.27 5.82 7.96 6.75 5.98 7.28 4 7.82 2.4 7.67 1.73 7.56.79 7.4.29 7.19.34 7.910.38 8.54.53 9.53.87 10.83 1.62 13.64 4.1 19.07 8.78 17.81 10.01 17.48 10.87 16.83 11.47 16H9.66V16ZM2.67 10.87 6 9.99C6 9.99 5.9 11.27 4.65 11.6 3.41 11.93 2.67 10.87 2.67 10.87Z\"\/><path fill=\"#2ead33\" d=\"M22.19 6.74C21.32 6.89 19.25 7.08 16.68 6.4 14.12 5.71 12.42 4.51 11.74 3.94 10.79 3.14 10.36 2.59 9.95 3.43 9.58 4.17 9.12 5.38 8.66 7.07 7.68 10.73 6.95 18.46 13.02 20.09 19.08 21.71 22.31 14.65 23.29 10.99 23.74 9.3 23.94 8.02 24 7.19 24.06 6.26 23.42 6.53 22.19 6.74ZM10 9.77C10 9.77 10.96 8.29 12.58 8.75 14.2 9.21 14.33 11 14.33 11L10 9.77ZM13.96 16.44C11.11 15.61 10.67 13.34 10.67 13.34L18.33 15.48C18.33 15.48 16.78 17.27 13.96 16.44ZM16.67 11.77C16.67 11.77 17.62 10.29 19.24 10.75 20.86 11.21 20.99 13 20.99 13L16.67 11.77Z\"\/><path fill=\"#d65348\" d=\"M8.15 14.87 5.33 15.67C5.33 15.67 5.64 13.92 7.71 13.23L6.12 7.24 5.98 7.28C4 7.82 2.4 7.67 1.73 7.56.79 7.4.29 7.19.34 7.91.38 8.54.53 9.53.87 10.83 1.62 13.64 4.1 19.07 8.78 17.81L8.92 17.77 8.15 14.87ZM2.67 10.87 6 9.99C6 9.99 5.9 11.27 4.65 11.6 3.41 11.93 2.67 10.87 2.67 10.87Z\"\/><path fill=\"#1d8d22\" d=\"M14.09 16.48 13.96 16.44C11.11 15.61 10.67 13.34 10.67 13.34L14.62 14.44 16.71 6.4 16.68 6.4C14.12 5.71 12.42 4.51 11.74 3.94 10.78 3.14 10.36 2.59 9.95 3.43 9.58 4.17 9.12 5.38 8.66 7.07 7.68 10.73 6.95 18.46 13.02 20.09L13.14 20.11 14.09 16.48ZM10 9.77C10 9.77 10.96 8.29 12.58 8.75 14.2 9.21 14.33 11 14.33 11L10 9.77Z\"\/><path fill=\"#c04b41\" d=\"M8.29 14.83 7.54 15.04C7.72 16.05 8.03 17.01 8.52 17.87 8.61 17.85 8.7 17.83 8.78 17.81 9.01 17.75 9.23 17.67 9.43 17.59 8.88 16.77 8.51 15.82 8.29 14.83ZM8 7.74C7.61 9.19 7.26 11.27 7.36 13.37 7.53 13.29 7.71 13.22 7.91 13.17L8.05 13.13C7.88 10.9 8.25 8.62 8.66 7.07 8.77 6.68 8.88 6.31 8.98 5.97 8.81 6.08 8.63 6.19 8.42 6.3 8.28 6.74 8.14 7.21 8 7.74Z\"\/><\/svg><\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__body\">\n\t\t\t\t\t\t\t<span class=\"cskl-related-card__title\">Playwright CAPTCHA Solver<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"cskl-related-card__blurb\">Solve CAPTCHAs in Playwright<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__arrow\" aria-hidden=\"true\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a class=\"cskl-related-card\" href=\"https:\/\/capskip.com\/zh\/puppeteer-captcha-solver\/\">\n\t\t\t\t\t\t<span class=\"cskl-related-card__icon cskl-related-card__icon--mark\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-10a3 3 0 0 1 3-3zM2.5 8.5h19M5.75 6.25h.01M8.24 6.25h.01\"\/><path class=\"a\" d=\"M9.5 11.5l6.5 2.4-2.8 1.2-1.2 2.8z\"\/><\/svg><\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__body\">\n\t\t\t\t\t\t\t<span class=\"cskl-related-card__title\">Puppeteer CAPTCHA Solver<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"cskl-related-card__blurb\">Solve CAPTCHAs in Puppeteer<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__arrow\" aria-hidden=\"true\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a class=\"cskl-related-card\" href=\"https:\/\/capskip.com\/zh\/recaptcha-solver\/\">\n\t\t\t\t\t\t<span class=\"cskl-related-card__icon cskl-related-card__icon--mark\"><svg class=\"csv\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><g transform=\"scale(.375)\"><path fill=\"#1c3aa9\" d=\"M64 31.955l-.033-1.37V4.687l-7.16 7.16C50.948 4.674 42.033.093 32.05.093c-10.4 0-19.622 4.96-25.458 12.64l11.736 11.86a15.55 15.55 0 0 1 4.754-5.334c2.05-1.6 4.952-2.906 8.968-2.906.485 0 .86.057 1.135.163 4.976.393 9.288 3.14 11.828 7.124l-8.307 8.307c10.522-.042 22.41-.068 27.295.004\"\/><path fill=\"#4285f4\" d=\"M31.862 0l-1.37.033H4.594l7.16 7.16C4.58 13.052 0 21.967 0 31.95c0 10.4 4.96 19.622 12.64 25.458L24.5 45.672a15.55 15.55 0 0 1-5.334-4.754c-1.6-2.05-2.906-4.952-2.906-8.968 0-.485.057-.86.163-1.135.393-4.976 3.14-9.288 7.124-11.828l8.307 8.307c-.042-10.522-.068-22.41.004-27.295\"\/><path fill=\"#ababab\" d=\"M.001 31.955l.033 1.37v25.9l7.16-7.16c5.86 7.173 14.774 11.754 24.76 11.754 10.4 0 19.622-4.96 25.458-12.64l-11.736-11.86a15.55 15.55 0 0 1-4.754 5.334c-2.05 1.6-4.952 2.906-8.968 2.906-.485 0-.86-.057-1.135-.163-4.976-.393-9.288-3.14-11.828-7.124l8.307-8.307c-10.522.042-22.41.068-27.295-.004\"\/><\/g><\/svg><\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__body\">\n\t\t\t\t\t\t\t<span class=\"cskl-related-card__title\">reCAPTCHA Solver<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"cskl-related-card__blurb\">Bypass v2, v3 &amp; Enterprise<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__arrow\" aria-hidden=\"true\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a class=\"cskl-related-card\" href=\"https:\/\/capskip.com\/zh\/cloudflare-turnstile-solver\/\">\n\t\t\t\t\t\t<span class=\"cskl-related-card__icon cskl-related-card__icon--mark\"><svg class=\"csv\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#f6821f\" d=\"M20.91 18.86H4.78C2.16 18.86 0 16.85 0 14.36c0-2.34 1.88-4.31 4.31-4.5A7.45 7.45 0 0 1 17.81 9.06a4.59 4.59 0 0 1 1.5-.23c2.44 0 4.45 1.88 4.64 4.22.05.19.05.42.05.61 0 2.86-2.44 5.2-3.09 5.2z\"\/><path fill=\"#fbad41\" d=\"M4.31 9.86A7.45 7.45 0 0 1 17.81 9.06c-2.25-.47-4.59.19-6.28 1.83-.94.94-1.55 2.11-1.78 3.38H0c0-2.34 1.88-4.31 4.31-4.41z\"\/><\/svg><\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__body\">\n\t\t\t\t\t\t\t<span class=\"cskl-related-card__title\">Cloudflare Turnstile Solver<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"cskl-related-card__blurb\">Widget &amp; challenge page<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__arrow\" aria-hidden=\"true\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a class=\"cskl-related-card\" href=\"https:\/\/capskip.com\/zh\/captcha-solver-for-web-scraping\/\">\n\t\t\t\t\t\t<span class=\"cskl-related-card__icon cskl-related-card__icon--mark\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5.5 4h13a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3h-13a3 3 0 0 1-3-3v-10a3 3 0 0 1 3-3zM2.5 8.5h19M5.75 6.25h.01M8.24 6.25h.01\"\/><path class=\"a\" d=\"M12 11v6M9.25 14.5 12 17.25l2.75-2.75\"\/><\/svg><\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__body\">\n\t\t\t\t\t\t\t<span class=\"cskl-related-card__title\">CAPTCHA Solver for Web Scraping<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"cskl-related-card__blurb\">Unlimited solves for crawlers<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cskl-related-card__arrow\" aria-hidden=\"true\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\n\t\t\t\t\t\t\t\t\t\t<div class=\"cskl-seowrap\">\n\t\t\t\t\t\t\t<div class=\"cskip-seo\">\n\t\t\t\t\t\t\t\t\t\t\t<h2 class=\"cskip-seo__h2\">Solve reCAPTCHA with Selenium Python: extension or SDK<\/h2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"cskip-seo__body\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Selenium gives you two dependable options when a CAPTCHA blocks the flow: let a browser extension finish the challenge inside the page, or solve it from your script and inject the answer. Both rely on the CapSkip app running somewhere your test can reach, and the right one depends on how much control the test needs.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>The extension route. Create a Chrome profile, install the CapSkip extension in it, and start webdriver.Chrome with that profile through the user-data-dir argument; for Firefox, call driver.install_addon() with the add-on file. Run headed or with --headless=new, since the old headless mode loads no extensions. Widgets for reCAPTCHA, Turnstile and GeeTest v3 are then handled in place, and your WebDriverWait only has to wait for the form to move on.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>The SDK route. Install the client with pip install capskip (Python 3.10 or newer) and build one solver for the whole session, aimed at 127.0.0.1 and port 8080 by default. For reCAPTCHA, take data-sitekey from the .g-recaptcha element, or the k value in the src of the reCAPTCHA iframe when JavaScript renders the widget, then call solver.recaptcha() with driver.current_url. An invisible widget needs invisible=1, while v3 wants version v3 plus the action string the page passes when it runs the check. Set g-recaptcha-response with execute_script, run the data-callback if the widget names one, and submit inside two minutes. For Turnstile, swap in solver.turnstile() and the hidden cf-turnstile-response field; the rest of the flow is unchanged.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>For a Python Selenium CAPTCHA image solver step, read screenshot_as_base64 from the img element, pass that string to solver.normal() with a data:image\/png;base64 prefix, and type the result with send_keys. Never fetch the image URL again: most image CAPTCHAs belong to the session, and a second request draws a new picture. Hand CapSkip the proxy your browser uses (HTTP, HTTPS, SOCKS5 or SOCKS5h) for reCAPTCHA and Turnstile; image solves need none.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Related guides: <a href=\"https:\/\/capskip.com\/undetected-chromedriver-captcha\/\">undetected-chromedriver CAPTCHA<\/a> \u00b7 <a href=\"https:\/\/capskip.com\/seleniumbase-captcha\/\">SeleniumBase CAPTCHA<\/a> \u00b7 <a href=\"https:\/\/capskip.com\/selenium-grid-captcha\/\">Selenium Grid CAPTCHA<\/a><\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<details class=\"cskip-faq__q\">\n\t\t\t\t\t\t\t\t\t<summary>What is the fastest way to solve reCAPTCHA with Selenium in Python?<\/summary>\n\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq__a\"><div class=\"cskip-faq__inner\"><div class=\"cskip-faq__text\">Keep the CapSkip app running, pip install capskip, and read data-sitekey from the .g-recaptcha element. Call solver.recaptcha() with that key and driver.current_url, adding invisible=1 or version v3 with the page action when needed. Put the returned code into g-recaptcha-response with execute_script, fire the data-callback if there is one, then submit.<\/div><\/div><\/div>\n\t\t\t\t\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<details class=\"cskip-faq__q\">\n\t\t\t\t\t\t\t\t\t<summary>Should my Selenium project use the extension or the SDK?<\/summary>\n\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq__a\"><div class=\"cskip-faq__inner\"><div class=\"cskip-faq__text\">Use the extension when you want zero solving code: the browser profile finishes each widget unaided while your waits run. Use the SDK when the test must decide when to solve, log the result, retry, or run in old headless mode. You can begin with the extension and move busy paths to the SDK later.<\/div><\/div><\/div>\n\t\t\t\t\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<details class=\"cskip-faq__q\">\n\t\t\t\t\t\t\t\t\t<summary>How do I get the extension into the browser Selenium opens?<\/summary>\n\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq__a\"><div class=\"cskip-faq__inner\"><div class=\"cskip-faq__text\">For Chrome, install the extension from the Chrome Web Store into a dedicated profile, then start Selenium with that profile through the user-data-dir argument. For Firefox, pass the add-on file to driver.install_addon(). Run headed or with --headless=new, because the legacy headless mode cannot load extensions, and keep the CapSkip app open while tests run.<\/div><\/div><\/div>\n\t\t\t\t\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<details class=\"cskip-faq__q\">\n\t\t\t\t\t\t\t\t\t<summary>How does Selenium pass an image CAPTCHA to CapSkip?<\/summary>\n\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq__a\"><div class=\"cskip-faq__inner\"><div class=\"cskip-faq__text\">Locate the CAPTCHA img, read its screenshot_as_base64 property and hand it to solver.normal(), prefixed with data:image\/png;base64. Type the returned characters into the answer box with send_keys. A screenshot beats downloading the image URL, because the site ties the picture to your session and a fresh request would show different letters.<\/div><\/div><\/div>\n\t\t\t\t\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<details class=\"cskip-faq__q\">\n\t\t\t\t\t\t\t\t\t<summary>Does it handle Cloudflare Turnstile, including the full-page check, in Selenium?<\/summary>\n\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq__a\"><div class=\"cskip-faq__inner\"><div class=\"cskip-faq__text\">Yes. For the widget, read data-sitekey from the .cf-turnstile element, call solver.turnstile() with the page URL and write the token into cf-turnstile-response before submitting. When Cloudflare shows its full-page check instead, CapSkip solves that as well and returns a userAgent alongside the token; reuse it for the rest of that Selenium session so the pass stays valid.<\/div><\/div><\/div>\n\t\t\t\t\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<details class=\"cskip-faq__q\">\n\t\t\t\t\t\t\t\t\t<summary>The form still refuses my injected token. What usually went wrong?<\/summary>\n\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq__a\"><div class=\"cskip-faq__inner\"><div class=\"cskip-faq__text\">Three causes cover most cases: the token is older than two minutes, the data-callback was never called, or the page holds several widgets and posts g-recaptcha-response-1 instead of the first field. Solve right before you submit, trigger the callback, and check in the network panel which field your form actually sends.<\/div><\/div><\/div>\n\t\t\t\t\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<details class=\"cskip-faq__q\">\n\t\t\t\t\t\t\t\t\t<summary>Can I call CapSkip from Selenium in C#, Node.js or Java?<\/summary>\n\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq__a\"><div class=\"cskip-faq__inner\"><div class=\"cskip-faq__text\">Yes. C# WebDriver projects add the .NET client with dotnet add package CapSkip, and selenium-webdriver in Node.js uses npm install capskip; the find, solve and inject steps mirror the Python flow. Java and other bindings have no SDK, so they call the local HTTP API directly with any HTTP client.<\/div><\/div><\/div>\n\t\t\t\t\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<details class=\"cskip-faq__q\">\n\t\t\t\t\t\t\t\t\t<summary>Does the solver work with headless Chrome and Selenium Grid?<\/summary>\n\t\t\t\t\t\t\t\t\t<div class=\"cskip-faq__a\"><div class=\"cskip-faq__inner\"><div class=\"cskip-faq__text\">The SDK route works in every browser mode, because the solve runs inside CapSkip and the test only has to reach its host and port. On Grid that keeps things simple: the test script calls the solver, not the node. The extension route needs headed Chrome or the new headless mode.<\/div><\/div><\/div>\n\t\t\t\t\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\n\t\t\t\t\t\t<section class=\"cskl-final\">\n\t\t\t\t<h2>Let your Selenium suite finish every run<\/h2>\n\t\t\t\t<p>Install CapSkip next to your driver, sign in, and choose the extension or the SDK. Your next WebDriver run clears its CAPTCHAs locally, and the monthly bill stays put whatever the suite runs into.<\/p>\n\t\t\t\t<div class=\"cskl-final__cta\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"cskl-btn cskl-btn--primary\" href=\"https:\/\/capskip.com\/zh\/product\/trial-license\/\">Start free trial <svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12h15M13.5 6l6 6-6 6\"\/><\/svg><\/a>\n\t\t\t\t\t<a class=\"cskl-btn cskl-btn--purple\" href=\"#licenses\"><svg class=\"csi\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3.5 16.5a4 4 0 1 0 8 0 4 4 0 1 0-8 0M10.4 13.6 20 4\"\/><path class=\"a\" d=\"M17 7l2.5 2.5M14.5 9.5l2 2\"\/><\/svg> Buy a license<\/a>\n\t\t\t\t<\/div>\n\t\t\t<\/section>\n\n\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-24535","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/comments?post=24535"}],"version-history":[{"count":3,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24535\/revisions"}],"predecessor-version":[{"id":24587,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24535\/revisions\/24587"}],"wp:attachment":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/media?parent=24535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}