在Chrome中运行Selenium WebDriver python绑定

我在与Selenium合作时遇到了一个问题。 对于我的项目,我必须使用Chrome。 但是,在使用Selenium启动后,我无法连接到该浏览器。

由于某些原因,Selenium本身无法findChrome。 当我尝试在不包含path的情况下启动Chrome时,会发生以下情况:

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' 

为了解决这个问题,我在启动Chrome的代码中包含了Chromiumpath。 但是,解释器无法find要连接的套接字:

 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' 

我也尝试通过启动chrome来解决问题:

 铬--remote-shell-port = 9222 

然而,这也没有工作。

PS。 以下是关于我的系统的一些信息:

  www-client:铬15.0.874.121  
 dev-lang:python 2.7.2-r3 Selenium 2.11.1  
操作系统:GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1 

您需要确保独立的ChromeDriver二进制文件(不同于Chrome浏览器二进制文件)位于您的path中,或者位于webdriver.chrome.driver环境variables中。

请参阅http://code.google.com/p/selenium/wiki/ChromeDriver了解如何连线的完整信息。;

编辑:

正确的,似乎是在从path环境variables读取chromedriver二进制文件的Python绑定中的一个错误。 似乎是否chromedriver不在你的道路上,你必须把它作为parameter passing给构造函数。

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

仅适用于Mac OSX

一个更简单的方法(假设你已经安装了自制软件 ,如果没有的话,先去做,然后让自制软件让你的生活变得更好)就是运行下面的命令:

 brew install chromedriver 

这应该把你的路上,你应该一筹莫展。

对于Linux

  1. 检查你是否安装了最新版本的chrome brwoser-> chromium-browser -version
  2. 如果没有,安装最新版本的chrome sudo apt-get install chromium-browser
  3. 从这里得到适当版本的铬驱动程序
  4. 解压chromedriver.zip
  5. 将文件移动到/usr/bin目录sudo mv chromedriver /usr/bin
  6. 转到/usr/bin目录cd /usr/bin
  7. 现在,你需要运行sudo chmod a+x chromedriver来标记它的可执行文件。
  8. 最后你可以执行代码。

     import os from selenium import webdriver from pyvirtualdisplay import Display display = Display(visible=0, size=(800, 600)) display.start() driver = webdriver.Chrome() driver.get("http://www.google.com") print driver.page_source.encode('utf-8') driver.quit() display.stop() 

对于窗户

从以下url下载webdriver:

2.9/chromedriver_win32.zip

要么

从这里下载最新的chromedriver

将chromedriver.exe文件粘贴到“C:\ Python27 \ Scripts”文件夹中。

这应该现在工作。

 from selenium import webdriver driver = webdriver.Chrome() 

对于Windows,请将chromedriver.exe放在<Install Dir>/Python27/Scripts/

对于Windows的IDE:

如果您的path不起作用,您可以尝试将chromedriver.exe添加到您的项目,就像在这个项目结构中一样。

chromedriver.exe

那么你应该加载chromedriver.exe在你的主文件。 至于我,我加载driver.exe中的driver.py

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

..意思是driver.py's上层目录

. 表示driver.py所在的目录

希望这会有所帮助。

有两种方法可以在Google Chrome中运行Selenium pythontesting。 我正在考虑Windows(在我的情况下是Windows 10):

先决条件:从以下url下载最新的Chrome驱动程序: https : //sites.google.com/a/chromium.org/chromedriver/downloads

方式1:

我)提取下载的压缩文件在您select的目录/位置
ii)在您的代码中设置可执行文件path如下:

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

方式2:

i)只需将chromedriver.exe粘贴到/ Python / Scripts /(在我的情况下该文件夹是:C:\ Python36 \ Scripts)
ii)现在编写简单的代码如下:

 self.driver = webdriver.Chrome()