Use Cases

Automatisiertes Login-CAPTCHA-Handling mit CaptchaAI

Auf Anmeldeseiten stößt man am häufigsten auf CAPTCHAs. Ganz gleich, ob es sich um reCAPTCHA v2, v3, Turnstile oder ein Bild-CAPTCHA handelt, CaptchaAI löst die Herausforderung, während Ihre Automatisierung das Ausfüllen und Senden von Formularen übernimmt.

Gängige CAPTCHA-Typen für die Anmeldung

CAPTCHA Wie es erscheint CaptchaAI-Methode
reCAPTCHA v2 Kontrollkästchen oder Herausforderung vor dem Absenden method=userrecaptcha
reCAPTCHA v3 Unsichtbares Scoring, blockiert Benutzer mit niedrigem Score method=userrecaptcha&version=v3
Cloudflare Turnstile Widget vor dem Anmeldeformular method=turnstile
Bild-CAPTCHA Textbild zum Eingeben method=base64

Methode 1: HTTP-Anfragen (kein Browser)

Für Anmeldeformulare, die Standard-POST-Anfragen akzeptieren:

import requests
import time

API_KEY = "YOUR_API_KEY"

def solve_recaptcha(site_key, page_url):
    resp = requests.get("https://ocr.captchaai.com/in.php", params={
        "key": API_KEY, "method": "userrecaptcha",
        "googlekey": site_key, "pageurl": page_url
    })
    task_id = resp.text.split("|")[1]
    for _ in range(60):
        time.sleep(5)
        result = requests.get("https://ocr.captchaai.com/res.php", params={
            "key": API_KEY, "action": "get", "id": task_id
        })
        if result.text == "CAPCHA_NOT_READY": continue
        if result.text.startswith("OK|"): return result.text.split("|")[1]
        raise Exception(result.text)
    raise TimeoutError()

# Login flow
session = requests.Session()
login_url = "https://example.com/login"

# Load login page to get cookies and site key
page = session.get(login_url)
# Extract site_key from the page HTML...
site_key = "6Le-wvkS..."

# Solve CAPTCHA
token = solve_recaptcha(site_key, login_url)

# Submit login form
resp = session.post(login_url, data={
    "username": "user@example.com",
    "password": "your_password",
    "g-recaptcha-response": token
})

if resp.url != login_url:
    print("Login successful!")
    # session now has auth cookies for subsequent requests

Methode 2: Selenium (Python)

Für Anmeldeseiten, die die Ausführung von JavaScript erfordern:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import requests
import time

API_KEY = "YOUR_API_KEY"

options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)

# Navigate to login page
driver.get("https://example.com/login")
wait = WebDriverWait(driver, 10)

# Fill in credentials
username_field = wait.until(EC.presence_of_element_located((By.NAME, "username")))
username_field.send_keys("user@example.com")
driver.find_element(By.NAME, "password").send_keys("your_password")

# Extract site key and solve
recaptcha = driver.find_element(By.CLASS_NAME, "g-recaptcha")
site_key = recaptcha.get_attribute("data-sitekey")

token = solve_recaptcha(site_key, driver.current_url)

# Inject token
driver.execute_script(
    f"document.getElementById('g-recaptcha-response').innerHTML = '{token}';"
)

# Submit
driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]').click()
wait.until(EC.url_changes(driver.current_url))
print(f"Logged in! Now at: {driver.current_url}")

Methode 3: Puppeteer (Node.js)

const puppeteer = require("puppeteer");
const axios = require("axios");

const API_KEY = "YOUR_API_KEY";

async function solveRecaptcha(siteKey, pageUrl) {
  const submit = await axios.get("https://ocr.captchaai.com/in.php", {
    params: {
      key: API_KEY,
      method: "userrecaptcha",
      googlekey: siteKey,
      pageurl: pageUrl,
    },
  });
  const taskId = submit.data.split("|")[1];

  while (true) {
    await new Promise((r) => setTimeout(r, 5000));
    const result = await axios.get("https://ocr.captchaai.com/res.php", {
      params: { key: API_KEY, action: "get", id: taskId },
    });
    if (result.data === "CAPCHA_NOT_READY") continue;
    if (result.data.startsWith("OK|")) return result.data.split("|")[1];
    throw new Error(result.data);
  }
}

(async () => {
  const browser = await puppeteer.launch({ headless: "new" });
  const page = await browser.newPage();
  await page.goto("https://example.com/login");

  // Fill credentials
  await page.type("#username", "user@example.com");
  await page.type("#password", "your_password");

  // Get site key and solve
  const siteKey = await page.$eval(".g-recaptcha", (el) =>
    el.getAttribute("data-sitekey")
  );
  const token = await solveRecaptcha(siteKey, page.url());

  // Inject and submit
  await page.evaluate(
    (t) => (document.getElementById("g-recaptcha-response").innerHTML = t),
    token
  );
  await page.click('button[type="submit"]');
  await page.waitForNavigation();

  console.log("Logged in:", page.url());
  await browser.close();
})();

Umgang mit Multi-Faktor + CAPTCHA

Einige Websites kombinieren CAPTCHAs mit Multi-Faktor-Authentifizierung:

# Step 1: Solve CAPTCHA and submit login
token = solve_recaptcha(site_key, login_url)
resp = session.post(login_url, data={
    "username": "user@example.com",
    "password": "your_password",
    "g-recaptcha-response": token
})

# Step 2: Handle MFA page (if redirected)
if "verify" in resp.url or "mfa" in resp.url:
    # Your MFA code logic here
    mfa_code = get_mfa_code()
    resp = session.post(resp.url, data={"code": mfa_code})

# Step 3: Verify logged in
assert "dashboard" in resp.url

Fehlerbehebung

Problem Ursache Lösung
Die Anmeldung kehrt zur CAPTCHA-Seite zurück Token abgelaufen Innerhalb von 60 Sekunden lösen und absenden
„Ungültige Zugangsdaten“ mit korrektem Passwort CSRF-Token fehlt Extrahieren Sie das CSRF-Token von der Anmeldeseite und fügen Sie es ein
Sitzung nach Anmeldung verloren Cookies bleiben nicht bestehen Verwenden Sie requests.Session() oder Browser-Cookies
reCAPTCHA v3 blockiert trotz Token Punktzahl zu niedrig CaptchaAI optimiert für hohe Punktzahlen; Aktionsparameter überprüfen

FAQ

Kann ich die Anmeldung bei jeder Website automatisieren?

CaptchaAI verwaltet die CAPTCHA-Komponente. Ihre Automatisierung muss das Anmeldeformular selbst verwalten (Felder ausfüllen, absenden, Cookies verwalten). Die Rechtmäßigkeit hängt von Ihrer Berechtigung zum Zugriff auf das Konto ab.

Benötige ich einen Browser für die Login-Automatisierung?

Nicht immer. Viele Anmeldeseiten akzeptieren Standard-HTTP-POST-Anfragen. Verwenden Sie einen Browser nur, wenn die Anmeldung die Ausführung von JavaScript oder komplexe Interaktionen erfordert.

Wie gehe ich mit der Sitzungswartung nach der Anmeldung um?

Verwenden Sie requests.Session() in Python oder verwalten Sie Cookies in Ihrer Browserinstanz. Die Sitzungscookies aus der Anmeldung werden für alle nachfolgenden authentifizierten Anfragen benötigt.

Verwandte Leitfäden

  • Selenium CAPTCHA-Handling mit Python
  • Puppeteer CAPTCHA-Lösung mit Node.js
  • Playwright CAPTCHA-Handling
Kommentare sind für diesen Artikel deaktiviert.

Verwandte Beiträge

Comparisons Headless vs. Headed Chrome für CAPTCHA-Tests in eigener QA
Wann sich Headless-Chrome und wann Headed-Chrome für CAPTCHA-Tests in eigenen CI- und QA-Pipelines eignet, und welche Auswirkungen die Wahl auf Stabilität und L...

Wann sich Headless-Chrome und wann Headed-Chrome für CAPTCHA-Tests in eigenen CI- und QA-Pipelines eignet, und...

Apr 17, 2026
Comparisons WebDriver vs. Chrome DevTools Protocol in eigener CAPTCHA-QA
Vergleich von Web Driver und Chrome Dev Tools Protocol für QA-Tests gegen die eigene CAPTCHA-Integration: Stärken, Grenzen und Einsatzempfehlungen.

Vergleich von Web Driver und Chrome Dev Tools Protocol für QA-Tests gegen die eigene CAPTCHA-Integration: Stär...

Apr 17, 2026