在 Chrome 中运行 Selenium WebDriver Python 绑定

2025-02-27 09:06:00
admin
原创
76
摘要:问题描述:我在使用 Selenium 时遇到了一个问题。对于我的项目,我必须使用 Chrome。但是,在使用 Selenium 启动 Chrome 后,我无法连接到该浏览器。由于某种原因,Selenium 无法自行找到 Chrome。当我尝试在不包含路径的情况下启动 Chrome 时,会发生以下情况:Trac...

问题描述:

我在使用 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

  1. 检查您是否安装了最新版本的 chrome 浏览器->chromium-browser -version

  2. 如果没有,请安装最新版本的 chromesudo 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()

解决方案 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:\Python36\Scripts)

ii) 现在编写如下简单代码:

self.driver = webdriver.Chrome()

解决方案 8:

对于 Windows 的 IDE:

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

chrome驱动程序

然后你应该在主文件中加载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 。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3878  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2714  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   47  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   48  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   48  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用