# Proxy Selenium : Chrome et Firefox avec une IP ISP statique | ProxyJam

Comment définir un proxy dans Selenium pour Chrome et Firefox, pourquoi les identifiants dans --proxy-server échouent et comment la liste blanche d'IP les remplace. Code Python testé.

- Canonical: https://proxyjam.com/fr/integrations/selenium/
- Updated: 2026-10-23
- Language: fr

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.


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.


## 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](/fr/what-is-my-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.

## 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.

### Chrome

Chrome via un proxy HTTP.

```
# 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()
```

### Firefox mot de passe

Firefox répond à la demande de mot de passe du proxy.

```
# 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()
```

### Firefox

Firefox via un proxy HTTP en liste blanche.

```
# 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()
```

### Chrome SOCKS5

Chrome via un proxy SOCKS5.

```
# 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()
```

### Appel liste blanche

Ajouter votre IP à la liste blanche du proxy.

```
# 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"]}'
```


## Options de proxy dans Selenium, navigateur par navigateur

|  | Proxy HTTP | Proxy SOCKS5 | Identifiant et mot de passe |
|---|---|---|---|
| Chrome | --proxy-server=http://HOST:PORT | --proxy-server=socks5://HOST:PORT | Ignorés dans --proxy-server ; utilisez la liste blanche |
| Firefox | Proxy avec httpProxy et sslProxy | Proxy avec socksProxy et socksVersion 5 | A fonctionné via add_authentication_handler (BiDi), en HTTP |
| Chrome, gestionnaires BiDi | add_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 |

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.


## 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

## 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.


## 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.

### 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.


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](/fr/isp-proxies/), consultez les [tarifs](/fr/pricing/), et réglez la même adresse dans de simples appels HTTP avec le guide [Python requests](/fr/integrations/python-requests/).



## Sources

- [Selenium documentation, Proxy](https://www.selenium.dev/documentation/webdriver/drivers/options/#proxy) : définir un proxy dans les options du navigateur
- [Selenium documentation, Selenium Manager](https://www.selenium.dev/documentation/selenium_manager/) : comment les drivers sont téléchargés, et le fait que le proxy configuré sert à ce téléchargement
- [Chromium, network settings](https://www.chromium.org/developers/design-documents/network-settings/) : l'option `--proxy-server` et ses schémas




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.

