selenium报Unable to locate or obtain driver for {options.capabilities[‘browserName‘]}

这篇具有很好参考价值的文章主要介绍了selenium报Unable to locate or obtain driver for {options.capabilities[‘browserName‘]}。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前写了一个get_dirver函数,单独运行的时候没问题。后面导入调用的时候也是正常的。
但是后面把这个合入到另一个项目的时候就报Unable to locate or obtain driver for {options.capabilities[‘browserName’]}这个错误。
后面编辑源文件,print了一下函数里面获取的路径,显示不是在当前目录,也就是base_path = os.getcwd()获取到的不是当前目录。
后来我查了一下,获取当前目录不能用base_path = os.getcwd(),而要使用

base_path = os.path.dirname(os.path.abspath(__file__))

先获取本文件的绝对目录,然后再截取当前目录文章来源地址https://www.toymoban.com/news/detail-761248.html

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# base_path = os.path.dirname(os.path.abspath(__file__))
base_path = os.getcwd()
def get_driver(url):
    # 关闭保存密码提示框,关闭不安全提示
    prefs = {"":""}
    # 是否启用凭据服务
    prefs["credentials_enable_service"] = False
    # 是否启用密码管理器配置文件
    prefs["profile.password_manager_enabled"] = False
    # 启用安全浏览器模式
    #prefs["safebrowsing.enabled"] =  True
    prefs["safebrowsing.enabled"] =  False
    # 设置浏览器默认下载目录
    # prefs["download.default_ directory"] = r"c:\download"
    prefs["download.default_ directory"] = base_path

    options = webdriver.ChromeOptions()
    # 设置chrome.exe和chromedriver.exe的目录
    options._binary_location = base_path + r'\chrome\112.0.5615.138\chrome\Chrome-bin\chrome.exe'
    driver_path = base_path + r"\chrome\112.0.5615.138\chrome\Chrome-bin\chromedriver.exe"
    # 执行完后不自动关闭浏览器
    options.add_experimental_option('detach',True)
    # 关闭下载保护
    options.add_experimental_option("--safebrowsing-disable-download-protection")
    options.add_experimental_option("--safebrowsing-disable-extension-blacklist")

    # 关闭保存密码提示框,
    options.add_experimental_option('prefs', prefs)
    # 设置浏览器分辨率
    options.add_argument("--window-size=1920,1080")
    # 浏览器窗口最大化
    options.add_argument('--start-maximized')
    # 不显示浏览器
    options.add_argument("--headless=new")
    # 禁用GPU
    options.add_argument('--disable-gpu')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--no-sandbox')# linux only
    # 忽略证书错误
    options.add_argument('--ignore-certificate-errors')
    # 如何去掉提示“正受到自动测试软件控制”
    options.add_experimental_option("excludeSwitches", ['enable-automation'])
    # 不显示图片
    options.add_argument('blink-settings-imagesEnabled=false')
    service = Service(executable_path=driver_path)
    driver = webdriver.Chrome(service=service,options=options)
    driver.get(url)
    return driver

到了这里,关于selenium报Unable to locate or obtain driver for {options.capabilities[‘browserName‘]}的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

    使用环境:python = 3.7 selenium = 4.11 浏览器:Edge 起因是想搞个脚本玩一玩,安装selenium的时候发现发现会报错。我是用conda安装的,第一次发现他给我安装的竟然是selenium3,然后就查阅了相关文档,发现py3.7是支持selenium4的,于是乎就升级到了最新的selenium4.11版本。 首先,是需

    2024年02月08日
    浏览(27)
  • selenium报错Unable to locate element

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

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

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

    2024年02月07日
    浏览(29)
  • selenium打开浏览器报错成功解决selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain...

            报错内容为           我将我运行代码同一目录下的msedgedriver.exe没有改名为MicrosoftWebDriver.exe同时我又将python/Scripts目录里面的驱动器改名为MicrosoftWebDriver.exe结果导致了文章开始的报错         我将我运行代码同一目录下的msedgedriver.exe改名为MicrosoftWebDriver.exe这样

    2024年02月10日
    浏览(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日
    浏览(27)
  • 使用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日
    浏览(27)
  • Python Selenium 元素定位错误Message: no such element: Unable to locate element: {“method“:xxx}

    报错信息 第一种情况就是你的元素定位表达式错误,根本就没有你表达式定位的这个元素,这时候就需要检查一下自己的表达式有没有写错了。当然这种情况出现的可能性不大,所以最有可能的原因还是以下几种 在打开多个窗口的情况下一定要注意selenim到底处于那个窗口上

    2024年02月16日
    浏览(36)
  • ElasticSearch~main ERROR Unable to locate appender “rolling_old“ for logger config “root“

    一、报错截图 二、报错原因 我这个错误是因为我把ElasticSearch文件夹的权限给了es用户( 因为ElasticSearch不允许root用户启动 ),但是没有修改日志保存路径,ElasticSearch默认会将日志存到一个路径,但是那个路径es用户是没有权限的,所以会导致报错 三、解决方案 新建了一个用来

    2024年02月16日
    浏览(35)
  • 几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK

    几个Flutter常见诊断错误与解决 jcLee95:https://blog.csdn.net/qq_28550263 https://blog.csdn.net/qq_28550263/article/details/132869987 问题描述 原因分析 这个错误表示找不到Android SDK。可能的原因是Android Studio没有安装或者安装路径没有正确配置。 解决办法 问题描述 原因与解决 这个错误信息表明

    2024年02月04日
    浏览(42)
  • ORA-20000: Unable to set values for index xxx: does not exist or insufficient privileges

    使用expdp/impdp导出导入数据时,遇到ORA-2000错误,如下所示: 导出环境为Oracle 12c,导入的数据库环境为Oracle 19c,具体版本为19.16.0.0.0,查了一下Oracle Support,刚好是遇到了Bug 30978304,关于为什么会出现这个错误, ORA-20000 from Data Pump Import (IMPDP) when PK Constraint does not Create a New In

    2024年02月12日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包