Empresa brasileira · Entrega automática · Suporte em português Seg a sex, 9h as 18h · PIX em reais
ProxyBox
Automação

Proxy no Selenium com usuário e senha

Por que o Selenium não aceita usuário e senha no --proxy-server do Chrome e como resolver com um proxy local, em Python, para Chrome e Firefox, validando o IP.

3 min de leitura Atualizado em 13 de setembro de 2026

No Selenium, o proxy é passado ao navegador por argumento — e é aí que mora o problema: o Chrome não aceita usuário e senha no --proxy-server. Com credencial no endereço, ele mostra a janela de login de proxy, que o Selenium não controla.

A solução estável é um proxy local sem senha: um pequeno programa na sua máquina recebe a conexão do navegador e a repassa ao proxy da ProxyBox já com usuário e senha. O navegador enxerga só 127.0.0.1, sem autenticação.

No painel, em Meus proxies, copie host, porta HTTP, usuário e senha.

Passo 1 — Suba o proxy local

Com o pacote pproxy, em Python:

pip install pproxy
pproxy -l http://127.0.0.1:8081 -r "http://p1.exemplo.com:8000#usuario:senha"
  • -l é o endereço local, sem senha, que o navegador vai usar.
  • -r é o proxy remoto; a credencial vai depois do #.

Deixe esse terminal aberto. Confira em outro terminal:

curl -x http://127.0.0.1:8081 https://api.ipify.org

O IP mostrado deve ser o do seu proxy, não o da sua conexão.

Passo 2 — Chrome no Selenium

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=http://127.0.0.1:8081")

driver = webdriver.Chrome(options=options)
driver.get("https://api.ipify.org?format=json")
print(driver.find_element("tag name", "body").text)
driver.quit()

Passo 2 (alternativa) — Firefox no Selenium

from selenium import webdriver

options = webdriver.FirefoxOptions()
options.set_preference("network.proxy.type", 1)
options.set_preference("network.proxy.http", "127.0.0.1")
options.set_preference("network.proxy.http_port", 8081)
options.set_preference("network.proxy.ssl", "127.0.0.1")
options.set_preference("network.proxy.ssl_port", 8081)

driver = webdriver.Firefox(options=options)
driver.get("https://api.ipify.org?format=json")
print(driver.find_element("tag name", "body").text)
driver.quit()

Configure http e ssl: sem o ssl, os sites HTTPS saem pelo seu IP real.

Vários proxies ao mesmo tempo

Um proxy local por proxy remoto, cada um numa porta:

pproxy -l http://127.0.0.1:8081 -r "http://p1.exemplo.com:8000#usuario1:senha1"
pproxy -l http://127.0.0.1:8082 -r "http://p2.exemplo.com:8000#usuario2:senha2"

Cada navegador aponta para a sua porta. Assim cada instância sai por um IP.

E o selenium-wire?

O selenium-wire resolvia a autenticação por dentro do Python, mas o projeto foi arquivado e não recebe atualizações. Para projeto novo, prefira o proxy local acima ou o Playwright, que aceita usuário e senha direto na API — veja Playwright, Puppeteer e Scrapy.

Erros comuns

  • Janela de login de proxy aparece e o script trava — a credencial está no --proxy-server. Mova para o proxy local.
  • ERR_PROXY_CONNECTION_FAILED — o proxy local não está rodando ou a porta está diferente. Veja ERR_PROXY_CONNECTION_FAILED.
  • O IP mostrado é o seu — no Firefox faltou a preferência ssl; no Chrome, confira se o argumento foi aplicado nas options usadas para criar o driver.
  • 407 no terminal do pproxy — a credencial depois do # está errada. Veja erro 407.

Para requisições sem navegador, o caminho é mais simples: proxy em Python com requests e httpx.

Perguntas frequentes

Por que http://usuario:senha@host no --proxy-server não funciona?
O Chrome ignora credenciais escritas no argumento --proxy-server. Ele abre a janela de login de proxy, que o Selenium não consegue preencher, e o script trava ou recebe erro.
Ainda vale usar selenium-wire?
O projeto selenium-wire foi arquivado pelo autor e não recebe mais atualizações. Funciona em ambientes antigos, mas não é uma boa base para projeto novo.
Dá para usar um proxy diferente por navegador aberto?
Sim. Suba um proxy local em uma porta diferente para cada proxy remoto e aponte cada instância do navegador para a sua porta.
O proxy local deixa a conexão mais lenta?
A diferença é mínima, porque o proxy local roda na mesma máquina e só repassa o tráfego com a credencial.

Travou em alguma etapa?

Manda o print do erro no WhatsApp. Respondemos em português e, na maioria dos casos, o problema é um campo trocado entre host e porta.