在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
- 检查你是否安装了最新版本的chrome brwoser->
chromium-browser -version
- 如果没有,安装最新版本的chrome
sudo apt-get install chromium-browser
- 从这里得到适当版本的铬驱动程序
- 解压chromedriver.zip
- 将文件移动到
/usr/bin
目录sudo mv chromedriver /usr/bin
- 转到
/usr/bin
目录cd /usr/bin
- 现在,你需要运行
sudo chmod a+x chromedriver
来标记它的可执行文件。 -
最后你可以执行代码。
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:
要么
从这里下载最新的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
在你的主文件。 至于我,我加载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()