{"id":24536,"date":"2026-07-27T17:35:35","date_gmt":"2026-07-27T17:35:35","guid":{"rendered":"https:\/\/capskip.com\/playwright-captcha-solver\/"},"modified":"2026-10-11T06:16:26","modified_gmt":"2026-10-11T06:16:26","slug":"playwright-captcha-solver","status":"publish","type":"page","link":"https:\/\/capskip.com\/zh\/playwright-captcha-solver\/","title":{"rendered":"Playwright \u9a8c\u8bc1\u7801\u8bc6\u522b"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"24536\" class=\"elementor elementor-24536\">\n\t\t\t\t<div class=\"elementor-element elementor-element-75789117 e-flex e-con-boxed e-con e-parent\" data-id=\"75789117\" 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-19c49083 elementor-widget elementor-widget-shortcode\" data-id=\"19c49083\" 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=\"#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>Playwright<\/span><h1 class=\"cskl-hero__title\">Playwright CAPTCHA Solver: Bypass CAPTCHAs in Node.js and Python<\/h1><p class=\"cskl-hero__lead\">Playwright specs and scrapers no longer stall on reCAPTCHA, Turnstile, GeeTest v3 or image CAPTCHAs. Await a token from the Node.js or Python SDK, or let the extension clear the challenge. Every solve runs on your own machine.<\/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\">Node.js and Python SDKs<\/li><li class=\"cskl-chip\">Any Playwright engine<\/li><li class=\"cskl-chip\">No per-solve billing<\/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=\"#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><\/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>A Playwright CAPTCHA solver covers the one step Playwright cannot script: its locators click, type and auto-wait, but none of them can produce the answer a reCAPTCHA, Cloudflare Turnstile or distorted-text image demands. CapSkip produces it in a desktop app that runs beside your tests, on a Windows PC or a VPS you control. A spec or scraping job that meets a challenge keeps going instead of hitting its timeout, and every solve is covered by one flat monthly license.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Both Playwright language camps are served. TypeScript and JavaScript projects add the capskip npm package and await its Promises between locator calls; Python projects use CapSkip with sync_playwright or AsyncCapSkip with async_playwright, which share method names. Solving is a plain HTTP request to the app, never a browser action, so the same helper works in Chromium, Firefox and WebKit projects. Every type CapSkip supports is open to Playwright: reCAPTCHA v2, v3 and Enterprise, Turnstile widgets and challenge pages, GeeTest v3 sliders, ALTCHA, CaptchaFox, Capy, Friendly Captcha and AWS WAF CAPTCHA, plus thousands of distorted-text images.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Audio-transcription helpers such as playwright-recaptcha only last while Google keeps offering the audio challenge, and it tends to vanish once an IP looks suspicious; a real token does not need that door open. Suites already wired to 2Captcha, Anti-Captcha or CapSolver can keep those calls too, since the app answers the same APIs locally.<\/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>Rather skip the token wiring?<\/strong> Start a persistent Chromium context with the CapSkip extension loaded, either headed or under the newer headless implementation, and challenges are cleared inside the page while your test waits on its next locator. The extension talks to the running CapSkip app, so keep the app open. <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 a Playwright project gains from CapSkip<\/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.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>Clients for TypeScript and Python<\/h3>\n\t\t\t\t\t\t\t<p>npm install capskip brings a Promise-based client with typings; pip install capskip brings CapSkip for sync_playwright and AsyncCapSkip for async_playwright, both with the same method names.<\/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 0M3 12h18M12 3c2.4 2.5 3.6 5.5 3.6 9s-1.2 6.5-3.6 9c-2.4-2.5-3.6-5.5-3.6-9S9.6 5.5 12 3z\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>One helper for every browser project<\/h3>\n\t\t\t\t\t\t\t<p>The SDK sends an HTTP request to the CapSkip app and never drives the browser, so the same solve helper serves your chromium, firefox and webkit projects without a branch.<\/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>Tokens written back with page.evaluate<\/h3>\n\t\t\t\t\t\t\t<p>Read the sitekey through a locator, hand it to recaptcha() or turnstile() with page.url, then drop the answer into the hidden response field and fire the widget callback if one exists.<\/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 0\"\/><path class=\"a\" d=\"M12 7.5V12l3 2\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>Solve only when a challenge appears<\/h3>\n\t\t\t\t\t\t\t<p>Give the widget locator a short timeout after each navigation and call the solver only when it resolves. Pages without a CAPTCHA keep their normal Playwright speed.<\/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.5 18.5a8.75 8.75 0 1 1 15 0\"\/><path class=\"a\" d=\"M12 14l4-4.25M11.28 14a.73.73 0 1 0 1.45 0 .73.73 0 1 0-1.45 0\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t<h3>Room for every test worker<\/h3>\n\t\t\t\t\t\t\t<p>Playwright Test runs specs across parallel workers, and each can solve at the same moment. No thread cap applies and the license is flat, so more workers never mean a bigger bill.<\/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>2Captcha and CapSolver calls keep working<\/h3>\n\t\t\t\t\t\t\t<p>A suite built around 2Captcha, Anti-Captcha or CapSolver stays as written. Pick that service in the CapSkip emulator and press Add on its Hosts file row. Your own machine then answers its requests instead of a paid queue.<\/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>Three ways to bypass CAPTCHA in Playwright<\/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 playwright.sync_api import sync_playwright\nfrom capskip import CapSkip\n\nsolver = CapSkip(host=&quot;127.0.0.1&quot;, port=8080)\n\nwith sync_playwright() as p:\n    page = p.chromium.launch().new_page()\n    page.goto(&quot;https:\/\/example.com\/login&quot;)\n\n    sitekey = page.get_attribute(&quot;.g-recaptcha&quot;, &quot;data-sitekey&quot;)\n    token = solver.recaptcha(sitekey=sitekey, url=page.url)[&quot;code&quot;]\n\n    page.evaluate(\n        &quot;t =&gt; document.getElementById(&#039;g-recaptcha-response&#039;).innerHTML = t&quot;, token\n    )\n    page.click(&quot;button[type=submit]&quot;)<\/code><\/pre><\/div>\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"cskl-code-caption\">Python with sync_playwright: read the reCAPTCHA sitekey, get the token from CapSkip on 127.0.0.1, write it into the page, then 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 in persistent Chromium<\/h3>\n\t\t\t\t\t\t<p>No solving code at all: Playwright launches Chromium with the CapSkip extension, and it clears widgets in the page. The same extension runs in everyday Chrome and Firefox.<\/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>SDKs for Node.js, Python and .NET<\/h3>\n\t\t\t\t\t\t<p>Await one call per CAPTCHA type from TypeScript or Python, or use the .NET client under Playwright for .NET. Each result comes back ready to inject.<\/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 the code you have<\/h3>\n\t\t\t\t\t\t<p>Existing 2Captcha-style requests are answered by the app, so older specs keep running. Playwright for Java, or any other binding, can call the HTTP API directly.<\/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>Aim a Playwright script at a live widget<\/h2>\n\t\t\t\t\t\t<p>Our reCAPTCHA v2 demo loads a real Google widget. Point your Playwright script at it, run the solve step, and confirm the form accepts the token before you go near 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>Set up the Playwright CAPTCHA solver in three steps<\/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 the app on a reachable machine<\/h3>\n\t\t\t\t\t\t\t<p>Install CapSkip next to your test runner on Windows, or on any VPS your CI jobs can reach across the network, then start it and let it idle until the first solve arrives. <a href=\"https:\/\/capskip.com\/download-capskip\/\">Get the Windows 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>Sign in with a license or trial<\/h3>\n\t\t\t\t\t\t\t<p>Your login details arrive by email after you subscribe; enter them in the app. To test first, the trial gives 3 days and 500 solves on one device, no card needed. <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>Wire the solve step into your tests<\/h3>\n\t\t\t\t\t\t\t<p>Install the npm or pip package, wrap the client in a helper or fixture, and call it wherever a challenge can show up. Method names and options are on the SDK page. <a href=\"https:\/\/capskip.com\/captcha-solving-sdk\/\">Open the SDK guide<\/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>CapSkip vs per-solve APIs inside a Playwright suite<\/h2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"cskl-section__sub\">The rows below follow what changes for a Playwright suite when solving moves from a paid API to your own machine.<\/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\">How you pay<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">Unlimited solves for a flat $35 a month and up<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Credits charged per thousand solves, rising with every run<\/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 solve happens<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">On a Windows box or VPS you control<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>In a provider cloud or by paid 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\">Playwright languages<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">Node.js and Python SDKs, .NET client, local HTTP API<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Their client libraries plus an API key<\/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 test workers<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">No thread cap, bounded only by your hardware<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Concurrency limits or extra fees<\/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\">Specs written for 2Captcha<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">Keep running through the built-in emulator<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Locked to that API and its prepaid 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\">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 over the internet<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Network and queue delay on each 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\">Challenge data<\/th>\n\t\t\t\t\t\t\t\t\t\t<td class=\"is-us\">Never leaves the solving machine<\/td>\n\t\t\t\t\t\t\t\t\t\t<td>Uploaded to an outside service each time<\/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\/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\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\/selenium-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=\"#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>\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\">Selenium 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 Selenium<\/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<\/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\">How to handle CAPTCHA in Playwright, step by step<\/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>Start by choosing where the solve lives. Playwright offers two clean spots: inside the browser, through the CapSkip extension, or inside your test code, through the SDK. Both work from Node.js and Python, and one repository can use each where it fits.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Inside the browser. Launch a persistent Chromium context that loads the extension, headed or in Chromium's new headless mode, because the old headless shell refuses extensions. It notices a reCAPTCHA, Turnstile or GeeTest v3 widget as soon as one renders and solves it while your next locator waits. For an image CAPTCHA, mark the picture and its input box in the extension once.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Inside your code. Pull the sitekey off the widget with a locator, send it along with page.url to the SDK, then use page.evaluate to set the hidden field the site reads: g-recaptcha-response for reCAPTCHA, cf-turnstile-response for Turnstile. Call the widget callback when the page declares one, then submit. Google lets a reCAPTCHA token live for roughly two minutes, so solve right before the submit, not at the top of the test.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Keep clean pages fast. After each navigation, give the widget locator a short timeout and skip the solve when nothing shows up. Suites that log in can solve the login challenge once in a setup project, save storageState, and start every later test already signed in.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Coming from a paid service? On the machine that runs CapSkip, pick 2Captcha or Anti-Captcha in the emulator settings, then let the app list that service in the Windows hosts file with a single click. Your Playwright calls stay as written and every supported CAPTCHA is solved locally.<\/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\/patchright-captcha\/\">Patchright CAPTCHA<\/a> \u00b7 <a href=\"https:\/\/capskip.com\/camoufox-captcha\/\">Camoufox CAPTCHA<\/a> \u00b7 <a href=\"https:\/\/capskip.com\/crawlee-captcha\/\">Crawlee 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>How do I bypass CAPTCHA in Playwright without writing solving code?<\/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\">Give Playwright a persistent Chromium context with the CapSkip extension inside, and leave the CapSkip app running. The extension spots reCAPTCHA, Turnstile and GeeTest v3 widgets and solves them on the page, so your script only waits for the next element. Image CAPTCHAs take one extra setup step: point the extension at the picture and the box where its answer goes.<\/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>Which Playwright browsers work with 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\">All three, on the SDK route. Solving is an HTTP call from your test process to the app, so Chromium, Firefox and WebKit behave the same. The extension route differs: Playwright loads extensions only into Chromium, so keep a Chromium project for no-code runs and use the SDK everywhere else.<\/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 fit Playwright Test with many parallel workers?<\/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. Create the client in a worker-scoped fixture or a shared helper and every worker can solve at the same time. CapSkip sets no thread limit, so throughput depends only on how much the solving machine can handle, and adding workers never changes what you pay each month.<\/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 solve invisible reCAPTCHA and reCAPTCHA v3 from Playwright?<\/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. Pass the invisible flag for an invisible v2 widget; for v3, send the version along with the action the site names in its own call. CapSkip returns a token either way, but Google still scores v3 traffic by its IP and browser fingerprint, so no solver can promise a score; a clean proxy helps most.<\/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>Will headless mode stop CapSkip from working?<\/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\">Not for the SDK, which never asks the browser to solve anything, so headless runs in CI behave like headed ones. Only the extension cares: it needs a headed browser or Chromium's new headless mode, since the legacy headless build has no extension support.<\/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 Playwright through Cloudflare Turnstile?<\/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\">Read the sitekey from the Turnstile widget, call turnstile() with it and page.url, and set the token in the cf-turnstile-response field before you submit. CapSkip also clears the whole-page Cloudflare check; there the answer includes the user agent it was solved with, so keep that browser context on the same user agent.<\/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 my Playwright suite keep its 2Captcha or Anti-Captcha calls?<\/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. Turn on the matching emulator in CapSkip and press Add on its Hosts file row. Requests your code sends to that service are then answered by the app instead. Nothing in the spec changes and no balance is spent. Run the tests on the CapSkip machine, since the hosts file only affects that computer.<\/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>Is playwright-recaptcha or a stealth patch enough on its own?<\/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\">Usually not for long. Audio-based packages like playwright-recaptcha stop working when Google withholds the audio challenge, which often happens to flagged IPs. Stealth patches and builds such as Patchright make challenges rarer but never solve one. Keep stealth if you like it and let CapSkip answer whatever still gets through.<\/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 Playwright runs finish green<\/h2>\n\t\t\t\t<p>Install CapSkip, add one solve step or the extension, and the specs that used to stall on a challenge reach their last assertion. Unlimited solves on one flat monthly plan.<\/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-24536","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24536","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=24536"}],"version-history":[{"count":3,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24536\/revisions"}],"predecessor-version":[{"id":24590,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24536\/revisions\/24590"}],"wp:attachment":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/media?parent=24536"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}