NoSuchDriverException

简介: 【8月更文挑战第10天】

错误信息 NoSuchDriverException: Unable to locate or obtain driver for chrome 指出Selenium无法定位Chrome驱动程序。根据您提供的错误信息和检索到的资源,这里是一些可能的解决方案:

1. 确保Selenium版本是最新的

Selenium 4.6及以上版本会自动下载所需的驱动程序。如果您使用的是最新版本的Selenium,但仍然遇到错误,请开启日志记录并提交bug报告。

2. 使用环境变量 PATH

您可以手动下载驱动程序,然后将其放置在系统环境变量 PATH 中已列出的目录,或者将包含驱动程序的目录添加到 PATH 中。

  • 在Windows上,打开命令提示符并执行:
    echo %PATH%
    
  • 在Linux或macOS上,打开终端并执行:
    echo $PATH
    

如果驱动程序的位置不在列出的目录中,可以将其添加到 PATH。添加后,可以通过检查驱动程序的版本来测试是否正确添加:

chromedriver --version

3. 指定驱动程序的位置

如果不想升级到最新版本的Selenium,不希望Selenium为您下载驱动程序,或者无法配置环境变量,可以在代码中指定驱动程序的位置。

首先下载所需的驱动程序,然后创建适用的 Service 类的实例并设置路径:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

chromedriver_path = '/path/to/chromedriver'
service = Service(executable_path=chromedriver_path)
chrome_options = Options()

driver = webdriver.Chrome(service=service, options=chrome_options)

4. 使用第三方驱动管理库

如果您使用的Selenium版本较旧(建议升级),或者需要Selenium Manager尚未实现的高级功能,可以尝试使用第三方工具来自动更新驱动程序,例如:

  • WebDriverManager (Java)
  • WebDriver Manager (Python)
  • WebDriver Manager Package (.NET)
  • webdrivers gem (Ruby)

5. 检查驱动程序下载链接

确保从官方链接下载了正确版本的驱动程序:

6. 使用 Selenium Manager

如果您正在使用Selenium 4.6或更新版本,可以利用Selenium Manager自动管理驱动程序。使用以下代码自动下载并设置Chromedriver:

from selenium import webdriver
from selenium.webdriver.chrome.service import ChromeService
from selenium.webdriver.chrome.options import Options
from selenium_manager import ChromeDriverManager

service = ChromeService(executable_path=ChromeDriverManager().install())
chrome_options = Options()

driver = webdriver.Chrome(service=service, options=chrome_options)

Traceback (most recent call last):
  File "D:/st_dev/ugot1213/test/04selenium.py", line 12, in <module>
    driver = webdriver.Chrome(service=service)
  File "C:\Program Files\Python37\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 50, in __init__
    keep_alive,
  File "C:\Program Files\Python37\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 51, in __init__
    self.service.path = DriverFinder.get_path(self.service, options)
  File "C:\Program Files\Python37\lib\site-packages\selenium\webdriver\common\driver_finder.py", line 44, in get_path
    raise NoSuchDriverException(f"Unable to locate or obtain driver for {options.capabilities['browserName']}")
selenium.common.exceptions.NoSuchDriverException: Message: Unable to locate or obtain driver for chrome; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location


Process finished with exit code 1
目录
相关文章
|
7月前
|
Web App开发 Linux
只需五步,在Linux安装chrome及chromedriver(CentOS)
只需五步,在Linux安装chrome及chromedriver(CentOS)
2519 1
|
5月前
|
Web App开发 测试技术 Python
【Python】已解决:selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrom
【Python】已解决:selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrom
612 6
|
API Python
Python-Docx库 | Word与Python的完美结合(附使用文档)
Python-Docx库 | Word与Python的完美结合(附使用文档)
2971 0
|
3月前
|
自然语言处理 IDE 测试技术
通义灵码最全使用指南,一键收藏,新用户领取见面礼
通义灵码最全使用指南,一键收藏。
112177 22
通义灵码最全使用指南,一键收藏,新用户领取见面礼
|
7月前
|
Linux
如何在 Linux 中将用户添加到多个组?
【4月更文挑战第17天】
1130 6
|
3月前
|
存储 安全 芯片
U盘在电脑上读不出来怎么办?6个方法帮你修复U盘
平时在存储和传输数据的时候,我们经常会使用到U盘这种存储设备。U盘容量大,使用方便且便于携带,很受欢迎。 然而,在日常使用中,有时候会遇到U盘插入电脑后无法被电脑识别或读取的情况。这会让人感到困扰,因为我们无法访问U盘里的文件。遇到这种情况该怎么办呢?今天的内容会讨论一下U盘无法读取的症状、分析一下常见原因并且提供6个方法帮你修复U盘。
|
3月前
|
Web App开发 数据采集 安全
Mac系统安装chromedriver遇到的问题和解决办法
Mac系统安装chromedriver遇到的问题和解决办法
|
4月前
|
数据采集 Web App开发 测试技术
使用Selenium调试Edge浏览器的常见问题与解决方案
在互联网数据采集领域,Selenium常用于自动化网页爬取。针对使用Edge浏览器时遇到的启动远程调试失败、访问受限及代理IP设置等问题,本文提供了解决方案。通过特定命令启动Edge的远程调试模式,并利用Python脚本配合Selenium库,可实现代理IP、User-Agent的设定及Cookie管理等高级功能,有效提升爬虫稳定性和隐蔽性。遵循步骤配置后,即可顺畅执行自动化测试任务。
862 1
使用Selenium调试Edge浏览器的常见问题与解决方案
|
4月前
|
存储 关系型数据库 PostgreSQL
PostgreSQL有何特点?
【8月更文挑战第5天】PostgreSQL有何特点?
148 6
|
7月前
|
安全
qt.qpa.xcb: could not connect to display 问题解决
【5月更文挑战第16天】qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 问题解决
3290 0