selenium4 “Unable to obtain working Selenium Manager binary”的错误解决方式之一

这篇具有很好参考价值的文章主要介绍了selenium4 “Unable to obtain working Selenium Manager binary”的错误解决方式之一。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

起因

使用环境:python = 3.7 selenium = 4.11 浏览器:Edge

起因是想搞个脚本玩一玩,安装selenium的时候发现发现会报错。我是用conda安装的,第一次发现他给我安装的竟然是selenium3,然后就查阅了相关文档,发现py3.7是支持selenium4的,于是乎就升级到了最新的selenium4.11版本。

首先,是需要上一下Edge官方webdriver使用文档页面,并按照指示在这个网站下载对应的webdriver驱动,并添加path环境变量 (按照我的解决方法其实不用添加)。

然后按照网上的教程,简单的写了一个脚本,其中创建webdriver的Edge实例代码如下:

from selenium import webdriver
# 直接创建Edge实例
driver = webdriver.Edge()

但是上面的代码会报错,其报错如下:

......
selenium.common.exceptions.WebDriverException: Message: Unable to obtain working Selenium Manager binary; ...\lib\site-packages\selenium\webdriver\common\windows\selenium-manager.exe

The above exception was the direct cause of the following exception:
......
selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for MicrosoftEdge using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location

查找原因

乍一看好像是他没能识别你刚刚下载的Edge的webdriver,好像是你的path没对之类的。但其实在你用cmd去直接调用这个msedgedriver.exe时是可以运行的。这一点很重要,说明不是下载的webdriver的问题。而后面附送的网址也没有指出这个问题的关键。

然后,我就开始注意到上面那个报错了,意思是Selenium Manager binary这个东西也找不到。那么Selenium Manager是啥?可以参考这篇文章。于是我顺着错误找到了这个文件夹,发现selenium\webdriver\common\windows文件夹里面,里面确实没有selenium-manager.exe。

那么,这个二级制文件真的那么重要吗?

其实这个文件的主要目的是定位你的webdriver位置,也就是msedgedriver.exe。但当他找不到这个exe的时候,就会觉得你的msedgedriver.exe也找不到,所以就会有第二个错误了…

解决方法

解决的方法主要有两个:

  1. 下载selenium-manager.exe到selenium指定的文件夹中,使程序可以调用这个来找到我们环境变量里面的webdriver。
  2. 找到调用selenium-manager.exe的方法,使其不要进入这个方法里面。
    selenium4 “Unable to obtain working Selenium Manager binary”的错误解决方式之一,selenium,测试工具,python,edge

这里,我们可以看到,Edge对象在初始化的时候会进入到一个DriverFinder的函数。此时,若你的service.path是none,则就会调用SeleniumManager().driver_location(options)方法,此时就会使用selenium-manager.exe了。那么,只要我们将service.path赋上值,就可以避免上面的那个报错了。

因此,解决方法代码如下:

from selenium import webdriver
# import Edge的Service
from selenium.webdriver.edge.service import Service

# 直接创建Service实例
ser = Service()
ser.path = 'E:/msedgedriver/msedgedriver.exe'
# 连接Edge浏览器
driver = webdriver.Edge(service=ser)

上述方法对后续程序的影响几乎没有,Service也无需设置其他参数。其他参数只要在option中设置即可。文章来源地址https://www.toymoban.com/news/detail-713898.html

到了这里,关于selenium4 “Unable to obtain working Selenium Manager binary”的错误解决方式之一的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for firefox using

    意思大概是:selenium获取不到firefox的驱动(geckodriver.exe) 错误原因:1. firefox(或者其他的selenium浏览器驱动--e.g.webchrome、safari等)放置的位置不正确。 今天傻羊在用selenium爬虫的时候发现,原来能用的firefox 突然就报错说用不了,刚开始的时候针对版本不匹配的问题进行更改

    2024年02月12日
    浏览(47)
  • chromedriverUnable to obtain driver for chrome using ,selenium找不到chromedriver

    1、下载chromedriver chromedriver下载网址:CNPM Binaries Mirror 老版本在:chromedriver/ 较新版本在:chrome-for-testing/  2、设置了环境变量还是找不到chromedriverUnable to obtain driver for chrome using  方法: 第一种:chromedriver.exe复制文件放入python安装目录的Scripts文件夹中 例如:C:Users***AppDat

    2024年04月28日
    浏览(41)
  • selenium报错Unable to locate element

    背景: 使用selenium写自动化脚本时,在登录后的新界面进行点击一直报错 内容如下: 报错如下: 解决方案: 查找各方资料后,有几种情况会造成报错,以下为解决方案: 1、定位的页面重新开了一个iframe,需要切换iframe,语句如下: 或者如下语句: 或者如下语句: 2、时间

    2023年04月09日
    浏览(42)
  • Selenium 元素定位不到(Unable to locate element)

    问题描述: 使用selenium进行元素定位时,元素的定位信息是正确的,但是脚本执行时,依旧会出现元素不存在的错误。 这个问题的原因在于,页面有一个加载的过程,当我们进行元素定位时,需要页面将该元素加载出来,如果元素没有加载出来,那么即使定位方式是正确的,

    2024年02月07日
    浏览(41)
  • Message: no such element: Unable to locate element:selenium报错

           最近在使用selenium爬虫时遇到了这个报错,反复检查了自己xpath路径确认没有问题。但是程序还是会报错:“Message: no such element: Unable to locate element: {“method”:“xpath”,“selector”:“//*[@id=“rootWrapper”]/div/div/div/div[2]/div/div[2]/div/div/div/div[2]/div[2]/ul/li[1]”}”。 代码如

    2024年02月11日
    浏览(36)
  • [Selenium]Message: disconnected: Unable to receive message from rendererXXX:报错解决

    selenium.common.exceptions.WebDriverException: Message: disconnected: Unable to receive message from renderer   (failed to check if window was closed: disconnected: not connected to DevTools)   (Session info: MicrosoftEdge=115.0.xxxx.xxx)         示例中使用的是最新版本的 webdriver.EdgeOptions() 创建 edge_options 实例。然后使用

    2024年02月04日
    浏览(46)
  • 使用selenium时NoSuchElementException: Message: no such element: Unable to locate element:{...}

    在学习用Python自动脚本测试时,运行报错: selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {\\\"method\\\":\\\"css selector\\\",\\\"selector\\\":\\\".radio:nth-child(2) .replace-word\\\"} 但在selenium ide跟踪、运行时是完全没有问题。 逐步跟踪也没有发现问题,后来想到此程序点击按

    2024年02月14日
    浏览(39)
  • 盘点selenium4和selenium3的区别

    在某些情况下,升级仍然会存在依赖项的问题,比如使用python的pip进行selenium安装的时候会出现依赖异常。 一、升级依赖关系 使用 Python 的最重要变化是所需的最低版本,Selenium 4 将至少需要 Python 3.7 或更高版本。 在python环境下,基于pip命令行做升级的话, 你可以执行: 1、

    2024年04月25日
    浏览(45)
  • selenium4框架学习

    https://blog.csdn.net/qq_45158700/article/details/135363339 浏览器驱动selenium文档下载 Selenium with Python中文翻译文档:https://selenium-python-zh.readthedocs.io/en/latest/ 下面链接中为103.0.5060.53版本的浏览器和对应的chromedriver ​链接:https://pan.baidu.com/s/1rMniL41_L05ucgwGPzhn2A ​提取码:6byo 谷歌浏览器和

    2024年01月21日
    浏览(131)
  • Selenium4自动化测试框架

    Selenium 介绍 Selenium 是目前用的最广泛的 Web UI 自动化测试框架,核心功能就是可以在多个浏览器上进行自动化测试,支持多种编程语言,目前已经被 google,百度,腾讯等公司广泛使用。 1、配置 google 驱动的环境变量,如果不配置需要在代码中指定驱动位置。 2、eclipse 中导入

    2024年02月03日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包