Sans KYC — pas de pièce d'identité, pas de selfie, pas de documents · Payer en crypto : BTC, USDT, USDC, ETH, SOL, LTC · Recharger à partir de 25 $US
Langue: Français
Voir les tarifs

Guide · Selenium

Configuration d'un proxy statique Selenium pour Chrome

Chrome accepte un hôte et un port de proxy, pas un login. Autorisez votre machine par IP, ou laissez un petit forwarder local ajouter le login.

Dernière mise à jour: · 6 min de lecture

Réponse rapide

Comment utiliser un proxy statique avec Selenium et Chrome ?

Pour un proxy statique Selenium dans Chrome, ne mettez pas le nom d'utilisateur et le mot de passe dans --proxy-server : Chrome n'y accepte qu'un schéma, un hôte et un port. Utilisez l'une des deux méthodes qui fonctionnent. Autorisez votre machine dans l'allowlist IP du proxy, ou lancez un petit forwarder local qui ajoute le login pour Chrome. SteadyProxy options de login : Nom d'utilisateur et mot de passe, ou une liste d'autorisation IP (jusqu'à 10 IP). Mis à jour le 19 octobre 2026.

Quels sont les points clés ?

Option Chrome--proxy-server=http://host:port, sans champ pour un login
Méthode 1Allowlist IP : jusqu'à 10 de vos propres IP se connectent sans mot de passe
Méthode 2Un forwarder local sur 127.0.0.1:8899 ajoute l'en-tête Proxy-Authorization
À éviteruser:password dans --proxy-server ; les extensions de navigateur d'origine inconnue
VérifierOuvrez api.ipify.org dans le navigateur piloté
TestéLe forwarder a transmis des requêtes HTTPS et HTTP via un proxy de test protégé par mot de passe, 19 octobre 2026

Pourquoi Chrome refuse-t-il les identifiants dans l'URL du proxy ?

L'option --proxy-server de Chrome accepte un schéma, un hôte et un port. La documentation des paramètres réseau de Chromium ne montre aucun nom d'utilisateur ni mot de passe dans ce format. Quand un proxy demande un login, une personne verrait une boîte de connexion, mais un script piloté par Selenium ne peut pas la remplir de façon fiable. Le login doit donc se faire en dehors de Chrome : soit le proxy fait confiance à l'IP de votre machine, soit un assistant sur votre machine envoie le login pour Chrome.

Comment utiliser l'allowlist IP avec Selenium ?

C'est la méthode la plus simple. Trouvez l'IP publique de votre machine en ouvrant api.ipify.org sans le proxy. Ajoutez cette IP à l'allowlist de votre compte SteadyProxy ; vous pouvez enregistrer jusqu'à 10 IP sources. Ensuite, passez uniquement l'hôte et le port à Chrome. L'exemple utilise le port HTTP ; SOCKS5 fonctionne de la même façon avec socks5:// et le port SOCKS5. Notre guide d'allowlist explique les deux sens de l'allowlist.

selenium_allowlist.py : Chrome avec hôte et port uniquement
"""Selenium + Chrome through a static proxy authorised by IP allowlist.

Install: python -m pip install selenium
Before running: add this machine's public IP to the allowlist of your account.
"""
import os

from selenium import webdriver
from selenium.webdriver.common.by import By

HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_PORT", "7777")

options = webdriver.ChromeOptions()
# Host and port only: Chrome's --proxy-server switch has no field for a username or password
options.add_argument("--proxy-server=http://" + HOST + ":" + PORT)

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://api.ipify.org?format=json")
    print("Exit IP:", driver.find_element(By.TAG_NAME, "body").text)
finally:
    driver.quit()

Comment un forwarder local ajoute-t-il le login ?

Un forwarder local écoute sur 127.0.0.1, reçoit les requêtes proxy de Chrome sans login, ajoute l'en-tête Proxy-Authorization et les transmet à votre proxy statique. Il utilise uniquement la bibliothèque standard de Python. Il gère HTTPS via des tunnels CONNECT, et http:// simple avec une requête par connexion. Gardez-le lié à 127.0.0.1, pour qu'aucune autre machine ne puisse utiliser votre proxy à travers lui. Nous l'avons testé le 19 octobre 2026 avec curl en HTTPS et HTTP, via un proxy de test qui rejette les requêtes sans le bon login.

local_forwarder.py : 127.0.0.1:8899 vers votre proxy statique
"""Local forwarder: Chrome -> 127.0.0.1:8899 (no login) -> static proxy (with login).

It adds the Proxy-Authorization header for you. Keep it bound to 127.0.0.1.
Run: python local_forwarder.py   (standard library only)
"""
import asyncio
import base64
import os

LISTEN_PORT = int(os.environ.get("LOCAL_PORT", "8899"))
UPSTREAM_HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
UPSTREAM_PORT = int(os.environ.get("PROXY_PORT", "7777"))
CREDENTIALS = os.environ.get("PROXY_USER", "USERNAME") + ":" + os.environ.get("PROXY_PASS", "PASSWORD")
AUTH = "Proxy-Authorization: Basic " + base64.b64encode(CREDENTIALS.encode()).decode()
DROP = ("proxy-authorization:", "proxy-connection:", "connection:")


async def pipe(reader, writer):
    try:
        while data := await reader.read(65536):
            writer.write(data)
            await writer.drain()
    except ConnectionError:
        pass
    finally:
        writer.close()


async def handle(client_reader, client_writer):
    try:
        head = await client_reader.readuntil(b"\r\n\r\n")
    except (asyncio.IncompleteReadError, asyncio.LimitOverrunError):
        client_writer.close()
        return
    lines = head.decode("latin-1").split("\r\n")
    headers = [h for h in lines[1:] if h and not h.lower().startswith(DROP)]
    headers.append(AUTH)
    if not lines[0].upper().startswith("CONNECT "):
        headers.append("Connection: close")  # plain http:// - one request per connection
    try:
        up_reader, up_writer = await asyncio.open_connection(UPSTREAM_HOST, UPSTREAM_PORT)
    except OSError:
        client_writer.write(b"HTTP/1.1 502 Bad Gateway\r\nContent-Length: 0\r\n\r\n")
        client_writer.close()
        return
    up_writer.write(("\r\n".join([lines[0]] + headers) + "\r\n\r\n").encode("latin-1"))
    await up_writer.drain()
    await asyncio.gather(pipe(client_reader, up_writer), pipe(up_reader, client_writer))


async def main():
    server = await asyncio.start_server(handle, "127.0.0.1", LISTEN_PORT)
    print("Forwarding 127.0.0.1:%d -> %s:%d" % (LISTEN_PORT, UPSTREAM_HOST, UPSTREAM_PORT))
    async with server:
        await server.serve_forever()


if __name__ == "__main__":
    asyncio.run(main())

Lancez le forwarder dans un terminal, puis exécutez Selenium avec l'adresse locale. Chrome ne voit jamais le mot de passe, et le login reste dans des variables d'environnement sur votre machine.

selenium_forwarder.py : Chrome via le forwarder local
"""Selenium + Chrome through the local forwarder (username/password kept out of Chrome).

Start local_forwarder.py first, then run this file.
"""
from selenium import webdriver
from selenium.webdriver.common.by import By

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

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://api.ipify.org?format=json")
    print("Exit IP:", driver.find_element(By.TAG_NAME, "body").text)
finally:
    driver.quit()

Comment exécuter plusieurs IP statiques avec Selenium ?

Lancez un forwarder par IP sur son propre port local, par exemple 8899, 8900 et 8901, chacun avec les identifiants de cette IP. Démarrez un driver Chrome par port. Avec l'allowlist IP, vous sautez les forwarders et passez l'hôte et le port de chaque IP à son propre driver. Donnez à chaque driver son propre --user-data-dir s'il doit conserver les cookies entre les exécutions. Vérifiez chaque driver avec api.ipify.org avant de travailler pour de vrai.

Le même problème existe-t-il avec Firefox et Selenium ?

Oui, sous une forme similaire. Firefox lit l'hôte et le port du proxy depuis ses préférences, et un login de proxy HTTP apparaît comme une boîte de dialogue que l'automatisation ne peut pas remplir de façon fiable. Les deux mêmes méthodes fonctionnent : l'allowlist IP, ou le forwarder local avec le proxy HTTP de Firefox réglé sur 127.0.0.1 et le port 8899. Pour un outil d'automatisation de navigateur avec login proxy intégré, voir le guide Playwright.

Que demande-t-on d'autre sur Selenium et les proxies statiques ?

Peut-on écrire http://user:password@host:port dans --proxy-server ?

Ça ne fonctionne pas de façon fiable. Le format documenté de Chrome pour --proxy-server n'a aucune place pour un login, donc les identifiants ne sont pas utilisés. Les requêtes échouent alors avec une erreur d'authentification proxy ou affichent une boîte de connexion. Utilisez l'allowlist IP ou le forwarder local décrit sur cette page.

Une extension Chrome est-elle un bon moyen d'envoyer le login du proxy ?

Ça peut fonctionner, mais cela ajoute du code avec de larges permissions au navigateur que vous automatisez, et les règles des extensions changent selon les versions de Chrome. Les deux méthodes ici n'ont aucune pièce mobile dans Chrome. Si vous utilisez une extension, écrivez-la vous-même ou auditez-la, et gardez-la hors des profils utilisés pour d'autres tâches.

Le forwarder local est-il sûr ?

Il n'écoute que sur 127.0.0.1, donc seuls les programmes sur votre machine peuvent l'utiliser. Toute personne ayant accès à votre machine pourrait aussi l'utiliser, car elle pourrait lire vos variables d'environnement. Arrêtez-le quand la tâche est terminée. Il ne journalise rien par défaut ; ajoutez de la journalisation uniquement sans l'en-tête Proxy-Authorization.

Comment trouver l'IP publique à ajouter à la liste d'autorisation ?

Sur la machine qui exécute Selenium, ouvrez https://api.ipify.org sans le proxy. C'est l'adresse que voit le proxy. Si votre bureau ou votre serveur a une IP fixe, ajoutez-la une fois à la liste d'autorisation. Une connexion domestique dont l'IP change est peu adaptée ; utilisez plutôt le forwarder avec un nom d'utilisateur et un mot de passe.

Selenium Wire ou une bibliothèque similaire résout-elle ce problème ?

Certaines bibliothèques ajoutent l'authentification proxy à Selenium en exécutant leur propre proxy d'interception, un peu comme le forwarder ici. Vérifiez qu'une bibliothèque est toujours maintenue avant d'en dépendre. Le forwarder de cette page fait environ 60 lignes de Python en bibliothèque standard que vous pouvez lire en entier.

Combien d'IP puis-je ajouter à la liste d'autorisation pour les machines Selenium ?

Jusqu'à 10 IP sources sur votre compte SteadyProxy, ce qui couvre la plupart des bureaux et des parcs de serveurs. Nos options de connexion sont : Nom d'utilisateur et mot de passe, ou une liste d'autorisation IP (jusqu'à 10 IP). Si vous exécutez Selenium sur plus de machines, faites-les passer par un seul serveur avec une IP fixe, ou utilisez le forwarder avec un nom d'utilisateur et un mot de passe sur chaque machine.

Quelles sources ce guide utilise-t-il ? (3)
  1. Paramètres réseau (format --proxy-server) — The Chromium Projects (2026-10-19)
  2. flux asyncio — Python Software Foundation (2026-10-19)
  3. Selenium WebDriver : options Chrome — Selenium (2026-10-19)

À partir de 2,24 $US par IP ISP · 30 jours · sans KYC

Voir les tarifs