Como Integrar o CapSolver com o Selenium | Guia Completo 2025

Ad¨¦lia Cruz
Neural Network Developer
04-Sep-2025

O que ¨¦ Selenium?
Selenium ¨¦ uma ferramenta de teste de automa??o de c¨®digo aberto usada principalmente para automatizar aplicativos web. Tamb¨¦m ¨¦ comumente usada para web scraping e automa??o de intera??es em sites. O Selenium pode simular v¨¢rios comportamentos do usu¨¢rio em um navegador, como clicar, digitar, rolar e alternar p¨¢ginas. Foi desenvolvido originalmente por Jason Huggins em 2004 e agora ¨¦ mantido pela equipe do projeto Selenium. O Selenium suporta v¨¢rias linguagens de programa??o, incluindo Python, Java, C#, Ruby e JavaScript.
O Selenium consiste nos seguintes componentes principais:
-
Selenium WebDriver (mais comumente usado)
- Fornece controle nativo sobre o navegador, suportando navegadores principais como Chrome, Firefox, Edge e Safari.
- Pode simular v¨¢rias a??es do navegador, como clicar, digitar, rolar e alternar guias.
- Cada navegador possui um driver correspondente, como
chromedriver
ougeckodriver
.
-
Selenium IDE
- Uma extens?o de navegador (para Chrome/Firefox) que permite gravar e reproduzir scripts de teste. ? ideal para iniciantes em testes.
-
Selenium Grid
- Permite testes distribu¨ªdos formando uma grade de teste com v¨¢rios navegadores e m¨¢quinas, permitindo a execu??o paralela de scripts.
Casos de Uso Comuns
- Raspagem de conte¨²do din?mico: Extrair dados gerados pela renderiza??o JavaScript.
- Lidar com intera??es complexas: Adequado para raspar sites que exigem login ou a??es de v¨¢rias etapas para acessar dados.
- Extrair dados de aplicativos SPA: Rastrear p¨¢ginas constru¨ªdas com frameworks como Vue ou React.
- Teste automatizado: Validar a funcionalidade da p¨¢gina enquanto coleta dados simultaneamente.
- Trabalhando com modo headless: Realizar todas as opera??es sem uma interface gr¨¢fica, ideal para execu??o em servidores.
Uso B¨¢sico do Selenium
Para usar o Selenium em Python:
bash
pip install selenium
Para usar o Selenium com o Chrome, baixe o chromedriver
que corresponde ¨¤ sua vers?o do Chrome em Github
Exemplo: Usando o Selenium para obter todos os t¨ªtulos de postagens de blog do blog da CapSolver:
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# Especificar o caminho do chromedriver (se j¨¢ adicionado ao PATH, pode ser omitido)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("/blog/All")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'h5')))
h5_elements = driver.find_elements(By.TAG_NAME, "h5")
for el in h5_elements:
print(el.text.strip())
finally:
driver.quit()
Como Integrar a Extens?o CapSolver com o Selenium
O Selenium ¨¦ uma ferramenta poderosa que suporta o carregamento de extens?es de navegador como um navegador comum.
-
Baixe o pacote
.zip
da extens?o mais recente do GitHub oficial da CapSolver e descompacte-o:
? https://github.com/capsolver/capsolver-browser-extension/releases -
Nas op??es de inicializa??o do Selenium, use o argumento
load-extension
para especificar o caminho da extens?o:
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("load-extension=/path/to/capSolver extension")
# Especificar o caminho do chromedriver (omitir se j¨¢ estiver no PATH)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("/blog/All")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'h5')))
h5_elements = driver.find_elements(By.TAG_NAME, "h5")
for el in h5_elements:
print(el.text.strip())
finally:
driver.quit()
?? Observa??o: Se voc¨º estiver usando o Chrome v137, pode ser necess¨¢rio adicionar um argumento adicional:
python
chrome_options.add_argument("--disable-features=DisableLoadExtensionCommandLineSwitch")
Mais detalhes: SeleniumHQ. Vers?es diferentes podem se comportar de forma diferente ¡ª ajuste de acordo com seu ambiente.
Usando a Extens?o CapSolver para Resolver reCAPTCHA v2
CAPTCHAs como reCAPTCHA, Cloudflare Turnstile, AWS WAF e GeeTest s?o amplamente usados em milhares de sites. No entanto, suas estruturas DOM permanecem em sua maioria consistentes entre os sites. A extens?o CapSolver pode detectar e resolver automaticamente esses CAPTCHAs com base em suas caracter¨ªsticas distintas ¡ª nenhuma intera??o manual ¨¦ necess¨¢ria.
Vamos usar o reCAPTCHA v2 como exemplo e demonstrar como usar a extens?o CapSolver no Selenium para contorn¨¢-lo.
(Observa??o: a menos que especificado de outra forma, a demonstra??o a seguir usa o modo click
: definido em /assets/config.js ¡ú reCaptchaMode: 'click'
)
?? N?o se esque?a de descompactar a extens?o e configurar sua
apiKey
em/assets/config.js
python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# Passo 1: Obtenha a extens?o do GitHub: https://github.com/capsolver/capsolver-browser-extension/releases
# Passo 2: Descompacte a extens?o e defina sua apiKey em /assets/config.js
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# Especificar o caminho do chromedriver (omitir se j¨¢ estiver no PATH)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# A extens?o detectar¨¢ e resolver¨¢ automaticamente o reCAPTCHA
time.sleep(15)
# Ap¨®s resolver, clique no bot?o enviar
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
except Exception as error:
print(error)
finally:
driver.quit()
A extens?o CapSolver tamb¨¦m suporta muitas op??es de configura??o ¨²teis. Todas as configura??es podem ser ajustadas no arquivo
/assets/config.js
.
Op??o de Configura??o solvedCallback
No exemplo anterior, esperamos 15 segundos ap¨®s carregar a p¨¢gina antes de clicar no bot?o enviar. Esse per¨ªodo de espera tinha a inten??o de dar ¨¤ extens?o CapSolver tempo suficiente para resolver automaticamente o reCAPTCHA.
No entanto, essa abordagem n?o ¨¦ elegante. Na pr¨¢tica, resolver o CAPTCHA pode levar muito menos de 15 segundos, ou em casos de rede lenta, mais de 15 segundos.
Para resolver isso, o CapSolver fornece uma op??o de configura??o chamada solvedCallback
. Isso permite que voc¨º defina uma fun??o de callback que ¨¦ acionada assim que o CAPTCHA for resolvido com sucesso. Voc¨º pode encontrar a op??o solvedCallback
em /assets/config.js
, e pode personalizar o nome da fun??o ¡ª por padr?o, ¨¦ captchaSolvedCallback
.
Se voc¨º estiver usando Puppeteer ou Playwright, poder¨¢ expor essa fun??o de callback para o contexto do navegador usando o m¨¦todo page.exposeFunction
. Veja:
E quanto a Python + Selenium?
Infelizmente, o Selenium do Python n?o fornece um equivalente integrado ao page.exposeFunction
, portanto, o recurso solvedCallback
n?o pode ser totalmente utilizado nesse ambiente.
Em vez disso, recomendamos usar a observa??o DOM para determinar se o CAPTCHA foi resolvido. Por exemplo, voc¨º pode verificar se a caixa de sele??o "N?o sou um rob?" desapareceu ou se tornou uma marca de sele??o (?), indicando que a valida??o est¨¢ completa.
Vamos melhorar o exemplo anterior usando essa estrat¨¦gia:
python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# Passo 1: Obtenha a extens?o do GitHub: https://github.com/capsolver/capsolver-browser-extension/releases
# Passo 2: Descompacte a extens?o e defina sua apiKey em /assets/config.js
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# Especificar o caminho do chromedriver (omitir se j¨¢ estiver no PATH)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
def check_recaptcha_status(driver):
try:
iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[src*="recaptcha"]')
driver.switch_to.frame(iframe)
# Verificar se o nome da classe indica que a caixa de sele??o foi marcada
recaptcha_anchor = driver.find_element(By.ID, "recaptcha-anchor")
class_list = recaptcha_anchor.get_attribute("class")
driver.switch_to.default_content()
if "recaptcha-checkbox-checked" in class_list.split():
return True
else:
return False
except Exception as e:
print(f"Falha ao verificar o status do reCAPTCHA: {e}")
driver.switch_to.default_content()
return False
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# A extens?o reconhecer¨¢ e resolver¨¢ automaticamente o CAPTCHA.
# Em vez de dormir um tempo fixo, verifique periodicamente.
timeout = 30
start_time = time.time()
while time.time() - start_time < timeout:
if check_recaptcha_status(driver):
print("Verifica??o reCAPTCHA bem-sucedida!")
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
driver.quit()
break
time.sleep(1)
except Exception as error:
print(error)
finally:
driver.quit()
Op??o de Configura??o manualSolving
Nos exemplos anteriores, o processo de resolu??o do CAPTCHA come?a automaticamente assim que a p¨¢gina termina de carregar. No entanto, em alguns casos, voc¨º pode precisar executar outras a??es primeiro ¡ª como preencher um nome de usu¨¢rio e uma senha ¡ª antes de acionar o solucionador de CAPTCHA. Resolver o CAPTCHA muito cedo pode resultar na expira??o do token antes da submiss?o.
A op??o manualSolving
foi projetada para resolver esse problema. Ao definir manualSolving: true
em /assets/config.js
, voc¨º pode acionar manualmente a resolu??o do CAPTCHA usando um dos dois m¨¦todos a seguir:
- Simule um clique no bot?o de extens?o CapSolver via Selenium.
- Execute um script para enviar uma mensagem:
window.postMessage({ type: 'capsolverSolve' });
(Observa??o: este m¨¦todo ¨¦ suportado nas vers?es de extens?o v1.16.0 e superior.)
O exemplo a seguir demonstra como usar ambos os m¨¦todos:
python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# Passo 1: Obtenha a extens?o do GitHub (https://github.com/capsolver/capsolver-browser-extension/releases)
# Passo 2: Descompacte a extens?o e configure sua apiKey em /assets/config.js
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# Especificar o caminho do chromedriver (omitir se j¨¢ estiver no PATH)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
def check_recaptcha_status(driver):
try:
iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[src*="recaptcha"]')
driver.switch_to.frame(iframe)
# Determinar se a caixa de sele??o foi marcada
recaptcha_anchor = driver.find_element(By.ID, "recaptcha-anchor")
class_list = recaptcha_anchor.get_attribute("class")
driver.switch_to.default_content()
if "recaptcha-checkbox-checked" in class_list.split():
return True
else:
return False
except Exception as e:
print(f"Falha ao verificar o status do reCAPTCHA: {e}")
driver.switch_to.default_content()
return False
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# Simular entrada do usu¨¢rio
driver.execute_script("""
const inputA = document.querySelector('input[name="ex-a"]');
inputA.value = 'username';
const inputB = document.querySelector('input[name="ex-b"]');
inputB.value = 'password';
""")
# Simular opera??es adicionais
for i in range(1, 6):
time.sleep(1)
print(f"Esperou {i} segundos...")
# Acionar a resolu??o do CAPTCHA (manualSolving deve ser definido como true em config.js)
print("Come?ando a resolver o captcha...")
# M¨¦todo 1: Simular clicando no bot?o CapSolver
try:
capsolver_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#capsolver-solver-tip-button")))
driver.execute_script("arguments[0].click();", capsolver_button)
except Exception as e:
print(f"Imposs¨ªvel encontrar o bot?o CapSolver: {e}")
# M¨¦todo 2: Acionar via postMessage (m¨¦todo alternativo)
# driver.execute_script("window.postMessage({ type: 'capsolverSolve' });")
# Aguardar a resolu??o do CAPTCHA e enviar o formul¨¢rio
timeout = 30
python
start_time = time.time()
while time.time() - start_time < timeout:
if check_recaptcha_status(driver):
print("Verifica??o recaptcha bem-sucedida!")
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
driver.quit()
break
time.sleep(1)
except Exception as error:
print(error)
finally:
driver.quit()
Configura??o reCaptchaMode
reCaptchaMode
suporta dois modos: click
e token
.
- click: Simula um humano clicando nos desafios de imagem.
- token: Ignora qualquer clique e envia diretamente a tarefa para o backend do CapSolver via API, retornando um token assim que o CAPTCHA for resolvido.
Se voc¨º notar que o uso do modo click
requer v¨¢rias rodadas de desafios de imagem, isso provavelmente indica um ambiente local de baixa qualidade. Nesse caso, ¨¦ recomendado usar o modo token
para melhor desempenho.
Modo Clique | Modo Token |
---|---|
![]() |
![]() |
Configura??o showSolveButton
Quando voc¨º define showSolveButton: false
(o padr?o ¨¦ true
), o bot?o de solu??o CapSolver n?o aparecer¨¢ mais na p¨¢gina.
No entanto, isso n?o afeta a funcionalidade de solu??o de CAPTCHA ¡ª ele ainda funcionar¨¢ normalmente em segundo plano.

Configura??o useProxy
Ap¨®s habilitar useProxy: true
, voc¨º pode especificar as seguintes configura??es de proxy:
proxyType
hostOrIp
port
proxyLogin
proxyPassword
Ent?o usaremos seu proxy personalizado para resolver o CAPTCHA.
Quando voc¨º deve usar seu pr¨®prio proxy? Aqui est?o dois cen¨¢rios comuns:
- Seu proxy oferece melhor qualidade (por exemplo, gera uma pontua??o mais alta para tokens reCAPTCHA) ou velocidade de solu??o mais r¨¢pida.
- Em alguns casos, o IP usado para resolver o CAPTCHA deve corresponder ao IP usado para enviar o token, o que requer o uso do seu proxy.
As op??es acima s?o algumas op??es de configura??o comumente usadas. Voc¨º pode ajustar outras configura??es de acordo com suas necessidades reais. Se voc¨º tiver alguma d¨²vida, entre em contato com nosso suporte ao cliente.
Resolvendo ImageToText com a extens?o CapSolver
Ao contr¨¢rio de CAPTCHAs de terceiros como reCAPTCHA, Cloudflare Turnstile, AWS WAF, existe outra categoria de CAPTCHA que requer o reconhecimento de letras ou n¨²meros de uma imagem ¡ª nos referimos a esses como CAPTCHAs ImageToText. Eles geralmente se parecem com isso:

Os CAPTCHAs ImageToText s?o geralmente implementa??es personalizadas pelos propriet¨¢rios do site. Como a localiza??o desses CAPTCHAs varia em diferentes sites e p¨¢ginas, a extens?o CapSolver n?o pode detectar automaticamente quais imagens s?o CAPTCHAs. Voc¨º precisa indicar manualmente isso em seu c¨®digo.
Veja como fazer isso:
- Adicione um atributo
capsolver-image-to-text-source
(valor0
) ao elemento de imagem CAPTCHA. - Adicione um atributo
capsolver-image-to-text-result
(valor0
) ao elemento de entrada de resultado.
Tanto capsolver-image-to-text-source
quanto capsolver-image-to-text-result
podem ser configurados em /assets/config.js
, nas op??es textCaptchaSourceAttribute
e textCaptchaResultAttribute
, respectivamente.
Vamos usar a demonstra??o como exemplo e mostrar como resolver um CAPTCHA ImageToText usando Selenium:
Da fonte da p¨¢gina, identificamos:
- ID do elemento de imagem CAPTCHA:
demoCaptcha_CaptchaImage
- ID do campo de entrada de resultado:
captchaCode
Assim:

Agora podemos adicionar os atributos necess¨¢rios usando o m¨¦todo setAttribute
em nosso script Selenium:
python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# Passo 1: Obtenha a extens?o do GitHub (https://github.com/capsolver/capsolver-browser-extension/releases)
# Passo 2: Descompacte o arquivo zip da extens?o e configure sua apiKey em /assets/config.js
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# Especifique o caminho para o chromedriver (pode omitir se adicionado ao PATH)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("https://captcha.com/demos/features/captcha-demo.aspx")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#demoCaptcha_CaptchaImage')))
# Informe ¨¤ extens?o CapSolver onde est¨¢ a imagem CAPTCHA
driver.execute_script("""
const imgElement = document.querySelector('#demoCaptcha_CaptchaImage');
if (imgElement) {
imgElement.setAttribute('capsolver-image-to-text-source', '0');
}
""")
# Informe ¨¤ extens?o CapSolver onde o resultado do reconhecimento deve ser inserido
driver.execute_script("""
const resultElement = document.querySelector('#captchaCode');
if (resultElement) {
resultElement.setAttribute('capsolver-image-to-text-result', '0');
}
""")
time.sleep(5)
validate_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'validateCaptchaButton')))
validate_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
Resultado esperado:

Como integrar a API CapSolver com Selenium
Usar a extens?o do navegador CapSolver ¨¦ conveniente e r¨¢pido. No entanto, se voc¨º ¨¦ um desenvolvedor experiente, recomendamos o uso do m¨¦todo API em vez disso. Em compara??o com a integra??o baseada em extens?o, a abordagem da API tem v¨¢rias vantagens:
- Voc¨º pode personalizar mais par?metros e a entrada ¨¦ mais precisa ¡ª capaz de lidar com praticamente todos os cen¨¢rios de CAPTCHA.
- Voc¨º tem maior controle sobre quando o CAPTCHA ¨¦ resolvido.
- A API fornece mensagens de erro mais detalhadas, ajudando voc¨º a otimizar sua l¨®gica de forma eficaz.
Antes de come?ar
Voc¨º precisar¨¢ entender como usar a API CapSolver. O processo envolve duas etapas:
- Etapa 1: Crie uma tarefa via
https://api.capsolver.com/createTask
- Etapa 2: Obtenha o resultado via
https://api.capsolver.com/getTaskResult
Ao criar uma tarefa, voc¨º precisa enviar uma carga ¨²til JSON para o CapSolver, que normalmente inclui par?metros como sua clientKey
, websiteURL
, websiteKey
, etc. Esses par?metros variam dependendo do tipo de CAPTCHA e do site de destino. Para obter detalhes completos, consulte nossa documenta??o
Resolvendo reCAPTCHA v2 com a API CapSolver
Antes de resolver o reCAPTCHA v2, consulte o guia:
? https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2/
Ele explica exatamente quais campos JSON incluir em sua solicita??o.
Al¨¦m disso, voc¨º pode usar a extens?o CapSolver para extrair rapidamente os dados JSON necess¨¢rios. Veja este blog para obter ajuda:
? obtenha os dados JSON
Vamos pegar o seguinte exemplo: https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
,
A carga ¨²til JSON necess¨¢ria ¨¦:
json
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
"websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
}
Tamb¨¦m fornecemos exemplos de c¨®digo Python para usar a API em nossa documenta??o:

Exemplo: Integrando com Selenium (Python)
python
import time
import requests
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# Especifique o caminho para o chromedriver (pule se j¨¢ estiver no PATH)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# TODO: Configure suas configura??es CapSolver
api_key = "YOUR_API_KEY" # Substitua pela sua chave de API CapSolver
site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9" # Chave do site reCAPTCHA
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php" # URL da p¨¢gina de destino
captcha_type = 'ReCaptchaV2TaskProxyLess'
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": captcha_type,
"websiteKey": site_key,
"websiteURL": site_url
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Falha ao criar tarefa:", res.text)
return ""
print(f"Obteve taskId: {task_id} / Obtendo resultado...")
while True:
time.sleep(1)
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Solu??o falhou! resposta:", res.text)
return ""
try:
token = capsolver()
print("token:", token)
driver.get(site_url)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# Injete o token de resposta reCAPTCHA
driver.execute_script("""
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = arguments[0];
}
""", token)
# Clique no bot?o enviar
submit_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[type="submit"]')))
submit_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
Resolvendo ImageToText com a API CapSolver
Vamos continuar usando o site de exemplo: https://captcha.com/demos/features/captcha-demo.aspx.
Nesta p¨¢gina, o elemento de imagem CAPTCHA tem o ID demoCaptcha_CaptchaImage
e o campo de entrada para o resultado tem o ID captchaCode
, como mostrado na captura de tela abaixo:

Em uma ImageToTextTask
, precisamos passar o valor codificado em base64 da imagem CAPTCHA para o CapSolver. Aqui est¨¢ um exemplo funcional:
python
import time
import requests
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# Especifique o caminho do chromedriver (pode ser omitido se estiver no seu PATH)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# TODO: Defina sua configura??o CapSolver
api_key = "YOUR_API_KEY" # Substitua pela sua chave de API CapSolver
site_url = "https://captcha.com/demos/features/captcha-demo.aspx" # URL da p¨¢gina de destino
captcha_type = 'ImageToTextTask'
def capsolver(base64Image):
payload = {
"clientKey": api_key,
"task": {
"type": captcha_type,
"websiteURL": site_url,
"body": base64Image
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('text')
elif status == "failed" or resp.get("errorId"):
print("Solu??o falhou! resposta:", res.text)
return ""
else:
print("Resposta desconhecida:", resp.text)
return ""
try:
driver.get(site_url)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#demoCaptcha_CaptchaImage')))
# Recupere a string base64 do atributo src da imagem captcha
captcha_src = driver.execute_script("""
const img = document.querySelector('img[id="demoCaptcha_CaptchaImage"]');
return img ? img.getAttribute('src') : null;
""")
if not captcha_src:
raise Exception("Imposs¨ªvel obter a imagem captcha!")
base64_image = captcha_src.split(',')[1] # Remova o prefixo 'data:image/png;base64,'
captcha_text = capsolver(base64_image)
print("Texto:", captcha_text)
# Preencha o resultado CAPTCHA
driver.execute_script("""
document.getElementById('captchaCode').value = arguments[0];
""", captcha_text)
# Clique no bot?o validar
validate_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, '#validateCaptchaButton'))
)
validate_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
Para certos tipos de CAPTCHAs ImageToText
complexos, voc¨º pode especificar diferentes modelos de reconhecimento para melhorar a precis?o. Para mais detalhes, consulte a documenta??o oficial:
? https://docs.capsolver.com/en/guide/recognition/ImageToTextTask/

Como integrar o SDK CapSolver com Selenium
O CapSolver fornece SDKs oficiais para Python e Golang, permitindo a integra??o com solu??o de CAPTCHA com m¨ªnimo esfor?o. Diferente do uso da API bruta (onde voc¨º deve manualmente lidar com createTask
e getTaskResult
), os SDKs simplificam todo o processo.
Reposit¨®rios oficiais GitHub:
- SDK Python
- SDK Golang
Resolvendo reCAPTCHA v2 com o SDK CapSolver
Assim como com a API, antes de resolver o reCAPTCHA v2, voc¨º deve consultar a documenta??o para informa??es detalhadas sobre quais par?metros JSON enviar:
? https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2/
Adicionalmente, voc¨º pode usar a extens?o de navegador CapSolver para extrair rapidamente os dados JSON necess¨¢rios:
? /blog/reCAPTCHA/recaptcha-v3-solver-human-score
Vamos usar esta p¨¢gina como exemplo:
? https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
O payload JSON necess¨¢rio se parece com isto:
json
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
"websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
}
Instale o SDK CapSolver:
bash
pip install capsolver
Exemplo: Usando o SDK no Selenium
python
import time
import capsolver
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# Configure seu CapSolver
api_key = "YOUR_API_KEY"
site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
captcha_type = 'ReCaptchaV2TaskProxyLess'
capsolver.api_key = api_key
try:
# Resolva usando o SDK
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
})
token = solution["gRecaptchaResponse"]
print("token:", token)
driver.get(site_url)
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]'))
)
driver.execute_script("""
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = arguments[0];
}
""", token)
submit_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[type="submit"]'))
)
submit_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
Resolvendo ImageToText com o SDK CapSolver
Assim como com a API, continuaremos com o site:
? https://captcha.com/demos/features/captcha-demo.aspx
A imagem CAPTCHA tem o ID demoCaptcha_CaptchaImage
, e o campo de entrada de resultado tem o ID captchaCode
.
Em uma ImageToTextTask
, voc¨º simplesmente precisa passar a imagem codificada em base64 para o CapSolver.
C¨®digo de exemplo:
python
import time
import capsolver
import requests
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# Configure seu CapSolver
api_key = "YOUR_API_KEY"
site_url = "https://captcha.com/demos/features/captcha-demo.aspx"
captcha_type = 'ImageToTextTask'
capsolver.api_key = api_key
try:
driver.get(site_url)
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#demoCaptcha_CaptchaImage'))
)
# Obtenha a string base64 da imagem
captcha_src = driver.execute_script("""
const img = document.querySelector('img[id="demoCaptcha_CaptchaImage"]');
return img ? img.getAttribute('src') : null;
""")
if not captcha_src:
raise Exception("N?o foi poss¨ªvel obter a imagem captcha!")
base64_image = captcha_src.split(',')[1]
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"body": base64_image,
})
captcha_text = solution["text"]
print("Texto:", captcha_text)
driver.execute_script("""
document.getElementById('captchaCode').value = arguments[0];
""", captcha_text)
validate_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, '#validateCaptchaButton'))
)
validate_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
Refer¨ºncias ?teis
- Documenta??o CapSolver
- Lan?amentos GitHub da Extens?o CapSolver
- Extens?o CapSolver na Chrome Web Store
- Extens?o CapSolver nos Add-ons do Firefox
- Solu??o de Pontua??o Semelhante ¨¤ Humana para reCAPTCHA v3
V¨ªdeos de demonstra??o com a extens?o CapSolver:
- Resolva reCAPTCHA v3 com a extens?o CapSolver Chrome
- Resolva reCAPTCHA v2 com a extens?o CapSolver Chrome
- Resolva reCAPTCHA com Puppeteer & Extens?o CapSolver
- Resolva ImageToText com Puppeteer & Extens?o CapSolver
Adicionalmente, o CapSolver oferece um Programa de Compartilhamento de Receita para Desenvolvedores, permitindo que desenvolvedores e parceiros ganhem comiss?es integrando ou promovendo solu??es CapSolver. ? uma ¨®tima maneira de monetizar seu trabalho enquanto ajuda outros a resolver captchas eficientemente. Para detalhes completos, veja:
Plano de Desenvolvedor CapSolver
Conclus?o
Este guia mostrou como integrar efetivamente o Selenium com o CapSolver para lidar com CAPTCHAs. Cobrimos os recursos principais do Selenium para automa??o web e destacamos dois m¨¦todos principais de integra??o CapSolver:
- A Extens?o de Navegador CapSolver: Uma solu??o direta para solu??o autom¨¢tica de CAPTCHA, ¨®tima para configura??es r¨¢pidas.
- A API/SDK CapSolver: Oferece mais controle e precis?o, ideal para casos de uso avan?ados. Voc¨º pode encontrar a documenta??o detalhada da API aqui e o SDK Python aqui.
Declara??o de Conformidade: As informa??es fornecidas neste blog s?o apenas para fins informativos. A CapSolver est¨¢ comprometida em cumprir todas as leis e regulamentos aplic¨¢veis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas ¨¦ estritamente proibido e ser¨¢ investigado. Nossas solu??es de resolu??o de captcha melhoram a experi¨ºncia do usu¨¢rio enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados p¨²blicos. Incentivamos o uso respons¨¢vel de nossos servi?os. Para mais informa??es, visite nossos Termos de Servi?o e Pol¨ªtica de Privacidade.
Mais

Como resolver qualquer vers?o do reCAPTCHA Enterprise v2, v2 invis¨ªvel, v3, v3 empresa 0,9 ponto
Domine a resolu??o de qualquer vers?o do reCaptcha com o CapSolver: Este guia oferece um tutorial passo a passo para resolver o reCaptcha de forma eficaz, garantindo resultados precisos a cada vez.

Ad¨¦lia Cruz
11-Oct-2025

Como resolver captchas de imagem
Este artigo de blog fornece um guia completo sobre como resolver captchas de imagem usando o CapSolver, uma ferramenta projetada para automatizar o processo. Ele come?a com uma explica??o do que ¨¦ um captcha de imagem, seguido por um passo a passo detalhado sobre como usar a API do CapSolver para resolver esses captchas. O guia inclui exemplos das solicita??es e respostas envolvidas no processo. O artigo conclui com uma observa??o sobre a efici¨ºncia e a conveni¨ºncia de usar o CapSolver para resolver captchas de imagem, tornando-o um recurso inestim¨¢vel para aqueles que desejam automatizar tarefas que envolvem resolu??o de captchas.

Ad¨¦lia Cruz
11-Oct-2025

Como resolver reCaptcha vers?o 2 Invis¨ªvel
Este blog serve como um guia abrangente sobre como resolver reCaptcha v2 invis¨ªvel usando Capsolver. Ele fornece um guia passo a passo, desde o envio das informa??es necess¨¢rias ao Capsolver at¨¦ a verifica??o dos resultados. O blog foi projetado para ser f¨¢cil de entender e seguir, tornando o processo de implementar e resolver reCaptcha v2 invis¨ªvel no seu site r¨¢pido e eficiente. ? um guia ¨²nico e abrangente, garantindo que os leitores adquiram uma compreens?o completa do processo sem pl¨¢gio.

Ad¨¦lia Cruz
11-Oct-2025

Resolver reCaptcha v2 Empresarial
No mundo digital, seguran?a e conveni¨ºncia do usu¨¢rio frequentemente se encontram nos extremos opostos do espectro. CAPTCHAs, especificamente o reCaptcha, t¨ºm sido fundamentais para encontrar um equil¨ªbrio entre os dois. No entanto, e se voc¨º precisar resolver os testes de reCaptcha frequentemente complexos e demorados, especialmente o reCaptcha V2 Enterprise, por um prop¨®sito leg¨ªtimo como testes automatizados? Neste blog, vamos te mostrar o processo de resolver o reCaptcha V2 Enterprise usando a API do CapSolver.

Alo¨ªsio V¨ªtor
11-Oct-2025

Resolver reCAPTCHA v3
Aprenda a resolver o reCaptcha V3 usando o CapSolver: diversos tipos de tarefas, integra??o simples da API e solu??es eficazes para automa??o e testes

Alo¨ªsio V¨ªtor
10-Oct-2025

Como encontrar a fun??o de callback do reCaptcha
Encontrar o callback de um reCAPTCHA envolve identificar a fun??o JavaScript que ¨¦ executada depois que o reCAPTCHA ¨¦ resolvido com sucesso. Segue uma breve vis?o geral das etapas que voc¨º pode seguir.

Ad¨¦lia Cruz
23-Sep-2025