scraping - Ejecutar enlaces de python Selenium WebDriver en cromo
selenium webdriver python download (7)
Para ventanas
Descarga ChromeDriver desde este enlace directo u obtén 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()
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 algún motivo, Selenium no puede encontrar Chrome por sí mismo. Esto es lo que sucede cuando intento lanzar Chrome sin incluir una ruta:
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''
Para resolver este problema, luego incluí la ruta de Chromium en el código que lanza Chrome. Sin embargo, el intérprete no puede encontrar un socket para conectarse:
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''
También traté de resolver el problema lanzando Chrome con:
chromium --remote-shell-port=9222
Sin embargo, esto tampoco funcionó.
PD. Aquí hay información sobre mi sistema:
www-client: chromium 15.0.874.121 dev-lang: python 2.7.2-r3 Selenium 2.11.1 OS: GNU/Linux Gentoo Kernel 3.1.0-gentoo-r1
Debe asegurarse de que el binario ChromeDriver independiente (que es diferente del binario del navegador Chrome) esté en su ruta o esté disponible en la variable de entorno webdriver.chrome.driver.
consulte http://code.google.com/p/selenium/wiki/ChromeDriver para obtener información completa sobre cómo mejorar las cosas.
Editar:
Correcto, parece ser un error en los enlaces de Python al leer el binario cromedriver de la ruta o la variable de entorno. Parece que si ChromeDriver no está en su ruta, debe pasarlo como 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://.com")
driver.quit()
Hay 2 formas de ejecutar las pruebas de Python de Selenium 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 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 Windows, tenga chromedriver.exe
colocado en <Install Dir>/Python27/Scripts/
Para el IDE de Windows:
Si su ruta de acceso no funciona, puede intentar agregar chromedriver.exe
a su proyecto, como en esta estructura de proyecto.
Luego debería cargar chromedriver.exe
en su 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.
Para Linux
- Compruebe que ha instalado la última versión de Chrome brwoser-> chromium
chromium-browser -version
- Si no, instale la última versión de Chrome
sudo apt-get install chromium-browser
- obtener la versión adecuada del controlador de Chrome desde here
- Descomprimir el chromedriver.zip
- Mueva el archivo al directorio
/usr/bin
sudo mv chromedriver /usr/bin
- Directorio de
cd /usr/bin
- Ahora, necesitarías ejecutar algo como
sudo chmod a+x chromedriver
para marcarlo ejecutable. 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 comenzar (suponiendo que ya tiene instalado homebrew , que debería, si no, vaya a hacerlo primero y deje que homebrew le haga la vida mejor) es simplemente ejecutar el siguiente comando:
brew install chromedriver
Eso debería poner al conductor cromado en su camino y debería estar todo listo.