J'ai rencontré un problème lorsque je travaillais avec Selenium. Pour mon projet, je dois utiliser Chrome. Cependant, je ne peux pas me connecter à ce navigateur après l'avoir lancé avec Selenium.
Pour une raison quelconque, Selenium ne trouve pas Chrome lui-même. C'est ce qui se passe lorsque j'essaie de lancer Chrome sans inclure de chemin:
Traceback (most recent call last):
File "./obp_pb_get_csv.py", line 73, in <module>
browser = webdriver.Chrome() # Get local session of chrome
File "/usr/lib64/python2.7/site-packages/Selenium/webdriver/chrome/webdriver.py", line 46, in __init__
self.service.start()
File "/usr/lib64/python2.7/site-packages/Selenium/webdriver/chrome/service.py", line 58, in start
and read up at http://code.google.com/p/Selenium/wiki/ChromeDriver")
Selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path. Please download from http://code.google.com/p/Selenium/downloads/list and read up at http://code.google.com/p/Selenium/wiki/ChromeDriver'
Pour résoudre ce problème, j'ai ensuite inclus le chemin d'accès Chromium dans le code qui lance Chrome. Cependant, l'interprète ne parvient pas à trouver un socket auquel se connecter:
Traceback (most recent call last):
File "./obp_pb_get_csv.py", line 73, in <module>
browser = webdriver.Chrome('/usr/bin/chromium') # Get local session of chrome
File "/usr/lib64/python2.7/site-packages/Selenium/webdriver/chrome/webdriver.py", line 46, in __init__
self.service.start()
File "/usr/lib64/python2.7/site-packages/Selenium/webdriver/chrome/service.py", line 64, in start
raise WebDriverException("Can not connect to the ChromeDriver")
Selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the ChromeDriver'
J'ai aussi essayé de résoudre le problème en lançant chrome avec:
chrome --remote-Shell-port = 9222
Cependant, cela n'a pas fonctionné non plus.
PS Voici quelques informations sur mon système:
www-client: chrome 15.0.874.121 dev-lang: python 2.7.2-r3 Sélénium 2.11.1 SE: GNU/Linux Gentoo Kernel 3.1.0-gentoo -r1
Vous devez vous assurer que le fichier binaire autonome ChromeDriver (qui est différent du fichier binaire du navigateur Chrome] est bien dans votre chemin ou disponible dans la variable d'environnement webdriver.chrome.driver.
voir http://code.google.com/p/Selenium/wiki/ChromeDriver pour obtenir des informations complètes sur la procédure de connexion.
Modifier:
À droite, il semble y avoir un bogue dans les liaisons Python lors de la lecture du fichier binaire chromedriver à partir du chemin ou de la variable d'environnement . Semble que chromedriver ne se trouve pas sur votre chemin, vous devez le transmettre en tant qu’argument au constructeur.
import os
from Selenium import webdriver
chromedriver = "/Users/adam/Downloads/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()
Pour Linux
chromium-browser -version
Sudo apt-get install chromium-browser
/usr/bin
répertoire Sudo mv chromedriver /usr/bin
/usr/bin
répertoire cd /usr/bin
Sudo chmod a+x chromedriver
pour le marquer comme exécutable.enfin, vous pouvez exécuter le code.
from Selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.google.com")
print driver.page_source.encode('utf-8')
driver.quit()
display.stop()
Mac OSX uniquement
Un moyen plus facile de commencer (en supposant que vous ayez déjà installé homebrew , vous devriez sinon le faire en premier et laisser homebrew vous rendre la vie meilleure) consiste à exécuter la commande suivante:
brew install chromedriver
Cela devrait mettre le chromedriver dans votre chemin et vous devriez être tous ensemble.
Téléchargez ChromeDriver depuis ce lien directOU obtenir la dernière version. de cette page .
Collez le fichier chromedriver.exe
dans votre dossier C:\Python27\Scripts
.
Cela devrait fonctionner maintenant:
from Selenium import webdriver
driver = webdriver.Chrome()
Pour les fenêtres, veuillez placer le chromedriver.exe
sous <Install Dir>/Python27/Scripts/
Il existe deux méthodes pour exécuter les tests Selenium python dans Google Chrome. J'envisage Windows (Windows 10 dans mon cas):
Prérequis: Téléchargez le dernier pilote Chrome à partir de: https://sites.google.com/a/chromium .org/chromedriver/downloads
Voie 1:
i) Extrayez le fichier Zip téléchargé dans un répertoire/emplacement de votre choix
ii) Définissez le chemin de l'exécutable dans votre code comme suit:
self.driver = webdriver.Chrome(executable_path='D:\Selenium_RiponAlWasim\Drivers\chromedriver_win32\chromedriver.exe')
Voie 2:
i) Collez simplement le fichier chromedriver.exe sous/Python/Scripts/(dans mon cas, le dossier était: C:\Python36\Scripts)
ii) Maintenant, écrivez le code simple comme ci-dessous:
self.driver = webdriver.Chrome()