Entrega automática tras confirmar el pago · IP dedicado · Soporte por ticket en el panel Pago local según tu país · Precios en dólares (USD)
ProxyBox
Automatización

Proxy en Selenium con usuario y contraseña

Por qué Selenium no acepta usuario y contraseña en el --proxy-server de Chrome y cómo resolverlo con un proxy local, en Python, para Chrome y Firefox, validando la IP.

3 min de lectura Actualizado el 26 de septiembre de 2026

En Selenium, el proxy se pasa al navegador como argumento, y ahí está el problema: Chrome no acepta usuario y contraseña en --proxy-server. Con la credencial en la dirección, Chrome muestra la ventana de inicio de sesión del proxy, que Selenium no controla.

La solución estable es un proxy local sin contraseña: un pequeño programa en tu máquina recibe la conexión del navegador y la reenvía al proxy de ProxyBox ya con usuario y contraseña. El navegador solo ve 127.0.0.1, sin autenticación. Esto es necesario porque la autenticación de ProxyBox es siempre por usuario y contraseña: no existe autorización por IP.

En el panel, en Mis proxies, copia host, puerto HTTP, usuario y contraseña.

Paso 1 — Inicia el proxy local

Con el paquete pproxy, en Python:

pip install pproxy
pproxy -l http://127.0.0.1:8081 -r "http://p1.ejemplo.com:8000#usuario:contrasena"
  • -l es la dirección local, sin contraseña, que usará el navegador.
  • -r es el proxy remoto; la credencial va después de #.

Deja esa terminal abierta. Compruébalo en otra terminal:

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

La IP que aparece debe ser la de tu proxy, no la de tu conexión.

Paso 2 — Chrome en 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()

Paso 2 (alternativa) — Firefox en 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()

Configura http y ssl: sin ssl, los sitios HTTPS salen por tu IP real.

Varios proxies a la vez

Un proxy local por cada proxy remoto, cada uno en un puerto:

pproxy -l http://127.0.0.1:8081 -r "http://p1.ejemplo.com:8000#usuario1:contrasena1"
pproxy -l http://127.0.0.1:8082 -r "http://p2.ejemplo.com:8000#usuario2:contrasena2"

Cada navegador apunta a su puerto. Así cada instancia sale por una IP.

¿Y selenium-wire?

selenium-wire resolvía la autenticación desde Python, pero el proyecto fue archivado y no recibe actualizaciones. Para un proyecto nuevo, prefiere el proxy local de arriba o Playwright, que acepta usuario y contraseña directamente en su API; mira Playwright, Puppeteer y Scrapy.

Errores comunes

  • Aparece la ventana de inicio de sesión del proxy y el script se bloquea: la credencial está en --proxy-server. Pásala al proxy local.
  • ERR_PROXY_CONNECTION_FAILED: el proxy local no está en marcha o el puerto es distinto. Mira ERR_PROXY_CONNECTION_FAILED.
  • La IP que aparece es la tuya: en Firefox faltó la preferencia ssl; en Chrome, comprueba que el argumento se aplicó a las options usadas para crear el driver.
  • 407 en la terminal de pproxy: la credencial que va después de # es incorrecta. Mira el error 407.

Lo que el proxy no cambia

El proxy cambia la IP de salida del navegador automatizado. No oculta que el navegador está controlado por Selenium ni cambia la huella digital, y no autoriza a automatizar sitios cuyas condiciones de uso lo prohíben.

Para peticiones sin navegador, el camino es más sencillo: proxy en Python con requests y httpx.

Preguntas frecuentes

¿Por qué http://usuario:contrasena@host en --proxy-server no funciona?
Chrome ignora las credenciales escritas en el argumento --proxy-server. En su lugar, abre la ventana de inicio de sesión del proxy, que Selenium no puede rellenar, y el script se queda bloqueado o recibe un error.
¿Sigue valiendo la pena usar selenium-wire?
El proyecto selenium-wire fue archivado por su autor y ya no recibe actualizaciones. Funciona en entornos antiguos, pero no es una buena base para un proyecto nuevo.
¿Puedo usar un proxy distinto en cada navegador abierto?
Sí. Inicia un proxy local en un puerto diferente para cada proxy remoto y apunta cada instancia del navegador a su puerto.
¿El proxy local hace más lenta la conexión?
La diferencia es mínima, porque el proxy local se ejecuta en la misma máquina y solo reenvía el tráfico con la credencial.

¿Te atascaste en algún paso?

Envíanos una captura del error por WhatsApp o abre un ticket en el panel. En la mayoría de los casos el problema es un campo intercambiado entre host y puerto.

¿Tienes dudas? Escríbenos por WhatsApp