web-dev-qa-db-fra.com

Exécution de Selenium WebDriver python liaisons dans chrome

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
141
Akendo

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()
131
adam goucher

Pour Linux

  1. Vérifiez que vous avez installé la dernière version de chrome brwoser-> chromium-browser -version
  2. Sinon, installez la dernière version de chrome Sudo apt-get install chromium-browser
  3. récupère la version appropriée du pilote chrome de ici
  4. Décompressez le chromedriver.Zip
  5. Déplacez le fichier dans /usr/bin répertoire Sudo mv chromedriver /usr/bin
  6. Aller à /usr/bin répertoire cd /usr/bin
  7. Maintenant, vous devez exécuter quelque chose comme Sudo chmod a+x chromedriver pour le marquer comme exécutable.
  8. 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()
    
104
Vicky

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.

93
Jachin

Pour les fenêtres

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()
52
Abdul Majeed

Pour les fenêtres, veuillez placer le chromedriver.exe sous <Install Dir>/Python27/Scripts/

23
user2253967

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()
1
Ripon Al Wasim