问题:在Chrome中运行Selenium WebDriver python绑定
使用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'
为了解决此问题,我随后在启动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'
我还尝试通过以下方式启动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
回答 0
您需要确保独立的ChromeDriver二进制文件(与Chrome浏览器二进制文件不同)位于您的路径中或在webdriver.chrome.driver环境变量中可用。
有关如何进行整理的完整信息,请参见http://code.google.com/p/selenium/wiki/ChromeDriver。
编辑:
是的,似乎是从路径或环境变量读取chromedriver二进制文件的Python绑定中的错误。似乎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()
回答 1
对于Linux
- 检查您是否安装了最新版本的Chrome浏览器->
chromium-browser -version
- 如果没有,请安装最新版本的chrome
sudo apt-get install chromium-browser
- 从此处获取适当版本的chrome驱动程序
- 解压缩chromedriver.zip
- 将文件移到
/usr/bin
目录sudo mv chromedriver /usr/bin
- 转到
/usr/bin
目录cd /usr/bin
- 现在,您需要运行类似
sudo chmod a+x chromedriver
将其标记为可执行文件的操作。 最后,您可以执行代码。
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.google.com") print driver.page_source.encode('utf-8') driver.quit() display.stop()
回答 2
仅Mac OSX
进行以下操作的更简单方法(假设您已经安装了自制软件,如果没有,应该先这样做,然后让自制软件使您的生活变得更好),只需运行以下命令:
brew install chromedriver
那应该将chromedriver放在您的路径中,并且您已经准备就绪。
回答 3
对于窗户
从此直接链接 下载ChromeDriver 或从此页面获取最新版本。
将该chromedriver.exe
文件粘贴到C:\Python27\Scripts
文件夹中。
现在应该可以使用:
from selenium import webdriver
driver = webdriver.Chrome()
回答 4
对于窗户,请chromedriver.exe
放在下面<Install Dir>/Python27/Scripts/
回答 5
有两种方法可以在Google Chrome浏览器中运行Selenium python测试。我正在考虑Windows(以Windows 10为例):
先决条件:从以下网址下载最新的Chrome驱动程序:https : //sites.google.com/a/chromium.org/chromedriver/downloads
方法1:
i)将下载的zip文件解压缩到您选择的目录/位置中
ii)如下所示在代码中设置可执行路径:
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()
回答 6
对于Windows的IDE:
如果您的路径不起作用,则可以尝试将其添加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
位于
希望这会有所帮助。