在chrome中运行Selenium WebDriver python绑定

Ake*_*ndo 143 python linux selenium automated-tests google-chrome

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

出于某种原因,Selenium无法单独找到Chrome.当我尝试在不包含路径的情况下启动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'
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我在启动Chrome的代码中包含了Chromium路径.但是,解释器无法找到要连接的套接字:

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'
Run Code Online (Sandbox Code Playgroud)

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

chromium --remote-shell-port=9222

但是,这也不起作用.

PS.这是关于我的系统的一些信息:

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

ada*_*her 131

您需要确保独立的ChromeDriver二进制文件(与Chrome浏览器二进制文件不同)位于您的路径中,或者在webdriver.chrome.driver环境变量中可用.

有关如何连接的详细信息,请参阅http://code.google.com/p/selenium/wiki/ChromeDriver.

编辑:

是的,似乎是Python绑定中的一个错误,从路径环境变量中读取chromedriver二进制文件.似乎chromedriver不在您的路径中,您必须将其作为参数传递给构造函数.

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()
Run Code Online (Sandbox Code Playgroud)

  • 另外,只是想提一下,传递给构造函数的参数是_ChromeDriver binary_和***包含ChromeDriver二进制文件的_directory的路径(过去半小时浪费了,弄清楚出了什么问题). (4认同)
  • 试过Chromedriver而不是Firefox Webdriver ..几乎是性能提升的3倍.. (2认同)

Vic*_*cky 106

对于Linux

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

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


Jac*_*hin 93

仅适用于Mac OSX

一个更简单的方法(假设您已经安装了自制软件,如果没有安装自制软件,那么首先应该这样做,让自制程序让您的生活更美好)就是运行以下命令:

brew install chromedriver
Run Code Online (Sandbox Code Playgroud)

那应该把chromedriver放在你的道路上,你应该全力以赴.

  • 这可能适用于Mac,但我使用的是Gentoo/Linux. (8认同)
  • @wyx 您的环境可能设置不正确。尝试运行 `brew doctor` 并查看是否有任何发现。 (2认同)
  • 当你对拥有Mac感到高兴时,这是一个温暖而模糊的时刻.太简单. (2认同)

Abd*_*eed 52

对于窗户

从此直接链接 下载ChromeDriver 从此页面获取最新版本.

chromedriver.exe文件粘贴到您的C:\Python27\Scripts文件夹中.

这应该现在有效:

from selenium import webdriver
driver = webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)


use*_*967 23

对于窗户,请chromedriver.exe放在下面<Install Dir>/Python27/Scripts/