在 Chrome 中运行 Selenium WebDriver Python 绑定
- 2024-10-10 09:28:00
- admin 原创
- 102
问题描述:
我在使用 Selenium 时遇到了一个问题。对于我的项目,我必须使用 Chrome。但是,在使用 Selenium 启动 Chrome 后,我无法连接到该浏览器。
由于某种原因,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 来解决问题:
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
解决方案 1:
您需要确保独立的 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()
解决方案 2:
对于 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()
解决方案 3:
仅限 Mac OS X
一种更简单的开始方式(假设你已经安装了Homebrew,如果没有,那么先安装它,然后让 Homebrew 让你的生活更美好)是运行以下命令:
brew install chromedriver
这应该会将 chromedriver 放入您的路径中,并且您应该一切就绪。
解决方案 4:
对于 Windows
从此直接链接 下载 ChromeDriver或从此页面获取最新版本。
将文件粘贴chromedriver.exe
到您的文件夹中C:Python27Scripts
。
现在应该可以工作了:
from selenium import webdriver
driver = webdriver.Chrome()
解决方案 5:
对于 Windows,请将 放置chromedriver.exe
在 下<Install Dir>/Python27/Scripts/
。
解决方案 6:
在 Ubuntu 上,您只需执行以下操作:
sudo apt install chromium-chromedriver
它应该可以工作。
解决方案 7:
有两种方法可以在 Google Chrome 中运行 Selenium Python 测试。我正在考虑 Windows(在我的情况下是 Windows 10):
先决条件:从以下位置下载最新的 Chrome 驱动程序:下载 - ChromeDriver - WebDriver for Chrome
方法一:
i) 将下载的 ZIP 文件解压到您选择的目录/位置
ii) 在您的代码中设置可执行路径,如下所示:
self.driver = webdriver.Chrome(executable_path='D:Selenium_RiponAlWasimDriverschromedriver_win32chromedriver.exe')
方法二:
i) 只需将chromedriver.exe粘贴到<安装目录>/Python/Scripts/下(在我的情况下,该文件夹为:C:Python36Scripts)
ii) 现在编写如下简单代码:
self.driver = webdriver.Chrome()
解决方案 8:
对于 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`表示所在目录
解决方案 9:
从Selenium 4.6.0开始,您不需要手动安装Selenium Manager(webdriver-manager),如下所示,因为根据博客,它已经包含在 Selenium 中
pip install webdriver-manager
并且,自Selenium 4.11.0以来,下面的代码就足够了,因为Selenium Manager可以自动发现您机器上安装的浏览器版本,然后可以根据博客自动为其下载正确的驱动程序版本:
from selenium import webdriver
driver = webdriver.Chrome()
*我的回答解释了如何使用 Chrome、Selenium、pytest-django和Django测试 Django Admin 。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件