Ejecutando enlaces de python de Selenium WebDriver en Chrome

Me encontré con un problema mientras trabajaba con Selenium. Para mi proyecto, tengo que usar Chrome. Sin embargo, no puedo conectarme a ese navegador después de iniciarlo con Selenium.

Por alguna razón, Selenium no puede encontrar Chrome solo. Esto es lo que sucede cuando bash iniciar Chrome sin incluir una ruta:

Traceback (most recent call last): File "./obp_pb_get_csv.py", line 73, in  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' 

Para resolver este problema, luego incluí la ruta de Chromium en el código que inicia Chrome. Sin embargo, el intérprete no encuentra un socket para conectarse a:

 Traceback (most recent call last): File "./obp_pb_get_csv.py", line 73, in  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' 

También intenté resolver el problema lanzando Chrome con:

  cromo --remote-shell-port = 9222 

Sin embargo, esto tampoco funcionó.

PD. Aquí hay alguna información sobre mi sistema:

  www-client: cromo 15.0.874.121  
 dev-lang: python 2.7.2-r3 Selenium 2.11.1  
 SO: GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1 

Debe asegurarse de que el binario ChromeDriver independiente (que es diferente al binario del navegador Chrome) esté en su ruta o esté disponible en la variable de entorno webdriver.chrome.driver.

visita http://code.google.com/p/selenium/wiki/ChromeDriver para obtener información completa sobre cómo cablear las cosas.

Editar:

Correcto, parece ser un error en los enlaces de Python que leen el binario chromedriver de la ruta o la variable de entorno. Parece que si chromedriver no está en tu camino tienes que pasarlo como un argumento al constructor.

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

Para linux

  1. Comprueba que has instalado la última versión de chrome brwoser-> chromium chromium-browser -version
  2. Si no, instala la última versión de chrome sudo apt-get install chromium-browser
  3. Obtener la versión apropiada del controlador Chrome desde aquí
  4. Descomprima el archivo chromedriver.zip.
  5. Mueva el archivo al directorio /usr/bin sudo mv chromedriver /usr/bin
  6. Goto /usr/bin directorio cd /usr/bin
  7. Ahora, necesitarías ejecutar algo como sudo chmod a+x chromedriver para marcarlo como ejecutable.
  8. Finalmente puedes ejecutar el código.

     from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.google.com") print driver.page_source.encode('utf-8') driver.quit() display.stop() 

Solo Mac OSX

Una forma más fácil de ponerse en marcha (asumiendo que ya tiene Homebrew instalado, lo que debería, si no es así, haga eso primero y deje que Homebrew mejore su vida) es simplemente ejecutar el siguiente comando:

 brew install chromedriver 

Eso debería poner el chromedriver en tu camino y deberías estar listo.

Para ventanas

Descargue ChromeDriver desde este enlace directo O obtenga la última versión de esta página .

Pegue el archivo chromedriver.exe en su carpeta C:\Python27\Scripts .

Esto debería funcionar ahora:

 from selenium import webdriver driver = webdriver.Chrome() 

Para Windows, chromedriver.exe el chromedriver.exe en /Python27/Scripts/

Hay 2 formas de ejecutar las pruebas de Selenium python en Google Chrome. Estoy considerando Windows (Windows 10 en mi caso):

Requisito previo: descargue el último controlador de Chrome desde: https://sites.google.com/a/chromium.org/chromedriver/downloads

Camino 1:

i) Extraiga el archivo zip descargado en un directorio / ubicación de su elección
ii) Establezca la ruta ejecutable en su código de la siguiente manera:

 self.driver = webdriver.Chrome(executable_path='D:\Selenium_RiponAlWasim\Drivers\chromedriver_win32\chromedriver.exe') 

Camino 2:

i) Simplemente pegue el archivo chromedriver.exe en / Python / Scripts / (en mi caso, la carpeta era: C: \ Python36 \ Scripts)
ii) Ahora escribe el código simple de la siguiente manera:

 self.driver = webdriver.Chrome() 

Para el IDE de Windows:

Si su ruta no funciona, puede intentar agregar el chromedriver.exe a su proyecto, como en esta estructura de proyecto.

chromedriver.exe

Entonces debes cargar el chromedriver.exe en tu archivo principal. En cuanto a mí, driver.exe el driver.exe en driver.py .

 def get_chrome_driver(): return webdriver.Chrome("..\\content\\engine\\chromedriver.exe", chrome_options='--no-startup-window') 

.. significa driver.py's directorio superior driver.py's

. significa el directorio donde se encuentra el driver.py

Esperamos que esto sea útil.