[Selenium] utiliser une instance de navigateur existante
Quand on débug du Selenium, on aimerait parfois réutiliser une instance existante, plutôt que repartir d’une nouvelle instance à chaque nouvelle exécution.
Etape 1. Démarrer le navigateur en mode « debug à distance »
- Exécuter chrome avec l’option
--remote-debugging-port
Exemple :
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:\Python\selenium\AutomationProfile"
Où --remote-debugging-port
indique le port sur lequel on pourra interagir et --user-data-dir
précise le répertoire dans lequel les informations de profil seront stockées.
Etape 2. Se connecter à l’instance avec Selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "C:/chemin/vers/le/driver/chromedriver.exe"
browser = webdriver.Chrome(chrome_driver, options=chrome_options)
On peut vérifier que l’instance de Chrome est bien accessible en lançant une instance « normalement » et en allant à l’URL :
http://127.0.0.1:9222
Les drivers de Chrome sont disponibles sur cette page.