Changer de langue
Français English Русский Deutsch Español Italiano Українська Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Menu
Tarifs
Proxys
TYPES DE PROXY
PAR EMPLACEMENT77 emplacements
Solutions
Ressources

Comment utiliser un proxy avec Selenium

Faites tourner Chrome ou Firefox sous Selenium via une adresse ISP statique. Chaque exemple de cette page a été exécuté contre un proxy local avant sa publication, et ce qui n'a pas fonctionné est dit clairement.

En bref : Dans Chrome, passez --proxy-server=http://HOST:PORT en argument ; dans Firefox, définissez un Proxy manuel dans les options. Firefox peut répondre à la demande de mot de passe du proxy via le gestionnaire WebDriver BiDi de Selenium, add_authentication_handler. Chrome n’a pas pu le faire dans notre test : il ignore les identifiants dans --proxy-server, et les deux gestionnaires BiDi ont expiré. Pour Chrome, ajoutez l’IP depuis laquelle tournent vos tests à la liste blanche du proxy, et le proxy n’a plus besoin d’identifiants, en HTTP comme en SOCKS5.

Selenium n’achemine pas le trafic lui-même : il démarre un navigateur et lui transmet le proxy dans les options du navigateur. C’est pourquoi la réponse diffère entre Chrome et Firefox, et pourquoi l’authentification au proxy est l’endroit où la plupart des configurations échouent.

Proxy Python Selenium pour Chrome et Firefox

Chrome lit le proxy dans une option de ligne de commande, Firefox dans un objet proxy de ses options. Les deux acceptent un proxy en liste blanche sans autre configuration ; Firefox peut aussi répondre à la demande de mot de passe du proxy via WebDriver BiDi, ce que Chrome n’a pas fait dans notre test.

Définir un proxy dans Selenium

  1. Trouvez l'IP publique depuis laquelle tournent vos tests

    L’adresse de la machine ou du runner CI telle qu’Internet la voit, pas son adresse locale. Quelle est mon IP l’affiche.

  2. Ajoutez cette IP à la liste blanche du proxy

    Un appel d’API, PUT /orders/ORDER_ID/whitelist, ou l’outil set_proxy_whitelist du serveur MCP ; le tableau de bord n’a pas encore de réglage pour cela. La liste blanche accepte des adresses IPv4 et remplace la liste à chaque appel. Tant qu’une liste blanche est définie, le proxy n’admet que les adresses listées, et l’identifiant et le mot de passe cessent de fonctionner pour cette commande ; envoyer une liste vide désactive la liste blanche, et la connexion par mot de passe fonctionne de nouveau.

  3. Copiez l'hôte et le port de la commande

    Depuis Mes proxys ou l’API. Avec la liste blanche en place, l’identifiant et le mot de passe ne sont pas nécessaires.

  4. Définissez le proxy dans les options du navigateur

    Chrome : --proxy-server=http://HOST:PORT, ou socks5://HOST:PORT après avoir basculé le proxy en SOCKS5. Firefox : un Proxy manuel avec httpProxy et sslProxy.

  5. Ouvrez une page et vérifiez l'adresse de sortie

    Chargez une fois la page Quelle est mon IP dans le navigateur piloté et vérifiez qu’il affiche l’adresse achetée, puis lancez la suite.

# The proxy has your machine's IP on its whitelist, so no credentials
# are sent: Chrome ignores them in --proxy-server anyway.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")  # remove to watch the browser
options.add_argument("--proxy-server=http://HOST:PORT")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Selenium 4.51+ with WebDriver BiDi; pip install selenium
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = webdriver.FirefoxOptions()
options.enable_bidi = True
options.add_argument("-headless")  # remove to watch the browser
options.proxy = Proxy({
    "proxyType": ProxyType.MANUAL,
    "httpProxy": "HOST:PORT",
    "sslProxy": "HOST:PORT",
})

driver = webdriver.Firefox(options=options)
try:
    # Answers the proxy's 407 with your username and password
    driver.network.add_authentication_handler(
        lambda request: request.provide_credentials("USERNAME", "PASSWORD")
    )
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# The proxy has your machine's IP on its whitelist, so no credentials
# are sent. For a password instead, see selenium-firefox-auth.
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = webdriver.FirefoxOptions()
options.add_argument("-headless")  # remove to watch the browser
options.proxy = Proxy({
    "proxyType": ProxyType.MANUAL,
    "httpProxy": "HOST:PORT",
    "sslProxy": "HOST:PORT",
})

driver = webdriver.Firefox(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Switch the proxy to SOCKS5 first, then use the port the order shows.
# The whitelist applies to SOCKS5 as well, so no credentials here either.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")  # remove to watch the browser
options.add_argument("--proxy-server=socks5://HOST:PORT")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Put the public IPv4 address your code runs from on the proxy's
# whitelist. Replaces the list; an empty list turns whitelisting off
# and the proxy falls back to username and password.
curl -X PUT "https://api.proxyjam.com/public/v1/orders/ORDER_ID/whitelist" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"whitelisted_ips": ["YOUR_IP"]}'

Code testé pour Selenium 4 en Python

L'exemple Firefox avec mot de passe envoie un identifiant et un mot de passe : il lui faut donc une commande sans liste blanche définie. Les autres exemples de navigateur supposent que l'IP de votre machine figure dans la liste blanche du proxy ; l'exemple SOCKS5 exige en plus de basculer d'abord le proxy en SOCKS5, ce qui donne un nouveau port. Remplacez les valeurs en majuscules par celles de votre commande, ainsi que ORDER_ID, YOUR_API_KEY et YOUR_IP dans l'appel de liste blanche.

Documentation API complète

Options de proxy dans Selenium, navigateur par navigateur

Testé le 2026-10-22 avec Selenium 4.51, Chrome et Firefox en mode headless, contre un proxy local qui exigeait un mot de passe sur un port et acceptait un client en liste blanche sur un autre.
Proxy HTTPProxy SOCKS5Identifiant et mot de passe
Chrome--proxy-server=http://HOST:PORT--proxy-server=socks5://HOST:PORTIgnorés dans --proxy-server ; utilisez la liste blanche
FirefoxProxy avec httpProxy et sslProxyProxy avec socksProxy et socksVersion 5A fonctionné via add_authentication_handler (BiDi), en HTTP
Chrome, gestionnaires BiDiadd_auth_handler et add_authentication_handler ont tous deux expiréNon testéUtilisez la liste blanche jusqu'à ce qu'une version ultérieure de Selenium ou de Chrome modifie ce comportement

Ce qui tourne mal avec Selenium et les proxys

Des identifiants dans --proxy-server

Chrome retire l'identifiant et le mot de passe de cet argument sans erreur, se connecte sans eux et reçoit un 407 du proxy. La page ne se charge alors pas, ce qui ressemble à un problème réseau plutôt qu'à un problème d'authentification.

Le téléchargement du driver passe par le proxy

Quand les options Firefox contiennent un proxy, Selenium Manager télécharge le driver par ce même proxy. Avec un proxy qui n'accepte que le mot de passe, ce téléchargement échoue avant le démarrage du navigateur ; avec la liste blanche, il réussit.

La liste blanche contient la mauvaise adresse

Un runner CI sort souvent par une autre IP publique que votre ordinateur portable, et certains en changent d'une exécution à l'autre. Mettez en liste blanche l'adresse depuis laquelle tournent les tests, et mettez-la à jour quand elle change, puisque chaque appel remplace la liste.

SOCKS5 dans le navigateur avant la bascule

Une adresse réglée sur HTTP ne répond pas en SOCKS5. Basculez d'abord le proxy sur votre commande et utilisez le port qu'elle affiche alors ; changer seulement le schéma dans l'argument donne un navigateur incapable de se connecter.

Ce qu'un test de navigateur obtient de l'adresse

Aucun mot de passe dans le navigateur
La liste blanche admet l'adresse IPv4 de votre runner, donc aucun secret ne figure dans les options ni dans les journaux
Les deux schémas du navigateur
http:// pour les pages ordinaires, socks5:// une fois la commande basculée
Même origine à chaque exécution
L'exécution d'hier et celle d'aujourd'hui partent d'une même IP, conservée pendant toute la période de facturation
Drivers en parallèle
Plusieurs drivers peuvent partager l'adresse, ou chaque driver peut avoir la sienne

Les autres guides, et le produit

Questions sur les proxys dans Selenium

Comment utiliser un proxy avec authentification dans Selenium ?

Dans Firefox, activez WebDriver BiDi et enregistrez avec driver.network.add_authentication_handler un gestionnaire qui fournit l'identifiant et le mot de passe ; cela a fonctionné avec Selenium 4.51. Dans Chrome, rien de ce qui envoie des identifiants n'a fonctionné dans notre test : il les ignore dans l'option de proxy, et les deux gestionnaires BiDi ont expiré. Pour Chrome, mettez en liste blanche l'IP publique depuis laquelle tournent vos tests, et le navigateur se connecte sans aucun identifiant.

Comment configurer un proxy dans Python Selenium pour Chrome ?

Créez ChromeOptions, ajoutez l'argument --proxy-server=http://HOST:PORT et passez les options à webdriver.Chrome. Pour SOCKS5, basculez le proxy en SOCKS5 sur votre commande et utilisez socks5://HOST:PORT avec le port que la commande affiche alors.

La liste blanche d'IP fonctionne-t-elle avec SOCKS5 ?

Oui. Une adresse en liste blanche est acceptée sans identifiants en HTTP et en SOCKS5, et c'est ce qui rend SOCKS5 utilisable depuis Chrome, puisque Chrome ne sait pas envoyer d'identifiant ni de mot de passe SOCKS5. La liste blanche se définit via l'API ou le serveur MCP et accepte des adresses IPv4. SOCKS5

Chaque navigateur d'une suite de tests peut-il utiliser un proxy différent ?

Oui, un par driver : le proxy fait partie des options avec lesquelles un driver démarre, donc deux drivers peuvent utiliser deux adresses. Changer le proxy d'un Chrome déjà lancé n'est pas possible ; démarrez plutôt un nouveau driver.

Une longue suite va-t-elle changer d'adresse en cours de route ?

Non. Le driver garde l'adresse avec laquelle il a démarré jusqu'à sa fermeture, et l'adresse elle-même vous reste attribuée pendant toute la période de facturation. Les suites qui ont besoin de nombreuses origines à la fois auraient besoin d'un pool qui les fait changer, et celui-ci n'est pas encore en vente.

À quoi puis-je utiliser le proxy ?

Les tests de bout en bout de votre propre produit, les contrôles régionaux de votre boutique, la vérification publicitaire, les études de prix et la protection de marque se font sans examen préalable au titre de notre politique d'utilisation acceptable. Piloter un navigateur pour déjouer des CAPTCHA, des défenses anti-bots, des limites de débit ou des bannissements de comptes est une autre affaire : l'adresse ne le fait pas, et la politique interdit de le tenter. Politique d'utilisation acceptable

Une adresse statique rend les tests de navigateur reproductibles : la même suite, lancée la semaine prochaine, arrive du même endroit, si bien qu’un changement dans le résultat vient du site. Commandez une adresse sur Proxys ISP, consultez les tarifs, et réglez la même adresse dans de simples appels HTTP avec le guide Python requests.

Sources