Esta página ajuda as equipes Selenium a integrar a solução de captcha com fluxos de trabalho estáveis e repetíveis para pipelines de teste e automação.
O Death By Captcha (DBC) permite que scripts Selenium resolvam desafios de captcha pela API em vez da interação manual: seu script extrai os parâmetros do desafio da página, solicita uma solução ao DBC, injeta o resultado de volta na página e continua o fluxo. Esta página é o quickstart: instalação, um exemplo de código executável e notas sobre as tarefas suportadas.
Python:
pip install selenium deathbycaptcha-official
Use as credenciais da sua conta DBC no cliente. Crie uma conta e confira preços e saldo antes de executar o fluxo.
import json
import os
import time
import deathbycaptcha
from selenium import webdriver
from selenium.webdriver.common.by import By
USERNAME = os.getenv('DBC_USERNAME')
PASSWORD = os.getenv('DBC_PASSWORD')
DEMO_URL = 'https://www.google.com/recaptcha/api2/demo'
def solve_recaptcha_v2(driver):
# 1. extract the challenge parameters from the page
sitekey = driver.find_element(By.ID, 'recaptcha-demo').get_attribute('data-sitekey')
token_params = json.dumps({'googlekey': sitekey, 'pageurl': DEMO_URL})
client = deathbycaptcha.SocketClient(USERNAME, PASSWORD)
if client.get_balance() <= 0:
raise SystemExit('No balance - top up before solving.')
# 2. request the solution token from DBC (type 4 = reCAPTCHA v2 token)
result = client.decode(type=4, token_params=token_params)
return result['text'] if result else None
driver = webdriver.Firefox()
driver.get(DEMO_URL)
token = solve_recaptcha_v2(driver)
if not token:
print('No solution yet - retry with backoff')
raise SystemExit(1)
# 3. inject the token back into the page
driver.execute_script("document.getElementById('g-recaptcha-response').value = arguments[0]", token)
# 4. submit and wait for the success element
driver.find_element(By.ID, 'recaptcha-demo-submit').click()
time.sleep(2)
print(driver.find_element(By.CLASS_NAME, 'recaptcha-success').text)
driver.quit()
Versão completa executável: examples/deathbycaptcha-python-selenium no repositório oficial do cliente Python
| Precisar | Contexto Selenium | Caminho DBC |
|---|---|---|
| Fluxo de trabalho de token estável | Tratamento determinístico em execuções repetidas de automação. | Fluxo de token orientado por API com limites explícitos de repetição/tempo. |
| Tipo de cobertura | Diferentes projetos atingem diferentes classes de desafios. | Use endpoints específicos do tipo e valide cada cenário separadamente. |
| Suporte operacional | Problemas de produção precisam de diagnóstico rápido. | Superfícies de suporte e confiabilidade para escalonamento e planejamento. |
| Tópico | Nota |
|---|---|
| Tipos de captcha (API) | reCAPTCHA v2 e v3, Cloudflare Turnstile, GeeTest, DataDome e captchas de imagem/texto. |
| Fluxo | Extraia o sitekey da página, solicite o token à API do DBC (type 4), injete-o de volta e envie o formulário. |
| Saldo | As soluções são pagas pelo saldo da conta; verifique-o antes de decodificar. |
| Novas tentativas | Não retornar solução é temporário: tente novamente com backoff, como faz o exemplo oficial. |
| API versus extensão | Este fluxo usa a API dentro do seu script; a extensão do navegador é o caminho sem código para a navegação manual. |
| Navegadores suportados | Qualquer navegador compatível com WebDriver; a amostra oficial roda no Firefox e no Chrome. |
Para a implantação do solucionador Selenium captcha, confirme primeiro o fluxo de token estável e, em seguida, conecte as páginas de confiabilidade e preços para finalizar o planejamento de produção.