Selenium webdriver_manager根据浏览器版本自动下载对应驱动程序

这篇具有很好参考价值的文章主要介绍了Selenium webdriver_manager根据浏览器版本自动下载对应驱动程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • webdriver_manager是什么?

webdriver_manager 是 Python 中的一个库,用于管理 Web 驱动程序。它的作用是自动下载和设置不同浏览器(如 Chrome、Firefox、Edge 等)的 Web 驱动程序,以便在自动化测试中使用这些浏览器。

在进行 Selenium 测试时,需要一个与浏览器相匹配的 Web 驱动程序,以便控制和操作浏览器。webdriver_manager 为您提供了一种简便的方式,可以自动检测所需浏览器的版本并下载相应的 Web 驱动程序。这样,您就不需要手动下载和设置 Web 驱动程序,可以减轻您的负担,提高测试的可靠性和可维护性。文章来源地址https://www.toymoban.com/news/detail-674281.html

一、导入模块

pip install webdriver_manager
pip install Selenium

二、Chrome用法

# Selenium4.0以下版本使用该方法
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

# 使用 ChromeDriverManager 安装 ChromeDriver,并返回驱动程序的路径
driver_path = ChromeDriverManager().install()
# 打印驱动程序路径
print(driver_path)

# 创建 Chrome WebDriver,并指定驱动路径
driver = webdriver.Chrome(executable_path=driver_path)
# 打开百度网页
driver.get("https://www.baidu.com")
# Selenium4.0以上版本使用该方法
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# 使用 ChromeDriverManager 安装 ChromeDriver,并返回驱动程序的路径
driver_path = ChromeDriverManager().install()
# 打印驱动程序的路径
print(driver_path)

# 创建 ChromeDriver 服务,并指定驱动程序的路径
service = Service(driver_path)
# 创建 Chrome WebDriver,并指定服务
driver = webdriver.Chrome(service=service)
# 打开百度网页
driver.get("https://www.baidu.com")
  • 下载驱动到指定目录中
# Selenium4.0以上版本使用该方法
import os
import shutil
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# 指定驱动目标位置
folder_path = r'C:\Users\admin\Desktop\run'
# 路径拼接
file_path = os.path.join(folder_path, 'chromedriver.exe')

# 使用ChromeDriverManager安装ChromeDriver,并获取驱动程序的路径
download_driver_path = ChromeDriverManager().install()
# 复制文件到目标位置
shutil.copy(download_driver_path, folder_path)

# 创建Chrome WebDriver,并指定驱动路径
driver = webdriver.Chrome(service=Service(file_path))
# 打开百度网页
driver.get("https://www.baidu.com")
  • 以下代码是判断谷歌浏览器版本和谷歌驱动版本是否一致,不一致则重新下载
# Selenium4.0以上版本使用该方法
import os
import shutil
import subprocess
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager


def determine_google_drive():
    """判断谷歌驱动版本是否和谷歌浏览器版本一致"""
    # 谷歌浏览器可执行文件的完整路径
    chrome_path = r'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'

    # 指定谷歌驱动目标位置
    folder_path = r'C:\Users\admin\Desktop\run'
    # 驱动名称
    file_name = 'chromedriver.exe'
    # 路径拼接
    file_path = os.path.join(folder_path, file_name)

    if os.path.exists(file_path):
        # 获取chromedriver.exe版本(谷歌浏览器驱动)
        result = subprocess.run([file_path, '--version'], capture_output=True, text=True)
        driverversion = '.'.join(result.stdout.strip().split(' ')[1].split('.')[:-1])

        # 获取chrome.exe版本(谷歌浏览器)
        command = f'wmic datafile where name="{chrome_path}" get Version /value'
        result_a = subprocess.run(command, capture_output=True, text=True, shell=True)
        output = result_a.stdout.strip()
        chromeversion = '.'.join(output.split('=')[1].split('.')[0:3])

        # 判断版本是否一致,不一致就重新下载
        if driverversion != chromeversion:
            # 使用ChromeDriverManager安装ChromeDriver,并获取驱动程序的路径
            download_driver_path = ChromeDriverManager().install()
            # 复制文件到目标位置
            shutil.copy(download_driver_path, folder_path)
        else:
            print("版本一致,无需重新下载!")

    else:
        download_driver_path = ChromeDriverManager().install()
        shutil.copy(download_driver_path, folder_path)

    return file_path


if __name__ == '__main__':
    # 创建Chrome WebDriver,并指定驱动路径
    driver = webdriver.Chrome(service=Service(determine_google_drive()))
    # 打开百度网页
    driver.get("https://www.baidu.com")

三、Edge用法

# Selenium4.0以下版本使用该方法
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager

driver = webdriver.Edge(executable_path=EdgeChromiumDriverManager().install())
driver.get("https://www.baidu.com")
# Selenium4.0以上版本使用该方法
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager

service = Service(EdgeChromiumDriverManager().install())
driver = webdriver.Edge(service=service)
driver.get("https://www.baidu.com")

四、Firefox用法

# Selenium4.0以下版本使用该方法
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
driver.get("https://www.baidu.com")
# Selenium4.0以上版本使用该方法
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager

service = Service(GeckoDriverManager().install())
driver = webdriver.Firefox(service=service)
driver.get("https://www.baidu.com")

到了这里,关于Selenium webdriver_manager根据浏览器版本自动下载对应驱动程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • selenium+webdriver之安装浏览器驱动

    1.查看谷歌浏览器版本,因为浏览器驱动版本需要与浏览器版本一致         查看谷歌版本路径:帮助》关于Google Chrome         我的浏览器版本是          2.下载浏览器驱动         下载驱动链接: http://npm.taobao.org/mirrors/chromedriver/         2.1点击上方链接

    2024年02月06日
    浏览(47)
  • WebDriver+Selenium实现浏览器自动化

    Selenium是一款可以自动化操作浏览器的开源项目,最初的目的是浏览器功能的自动化测试,但是随着项目的发展,人们根据它的特性也用来做一些更多的有意思的功能而不仅仅是UI的自动化测试工具。就像Selenium官方网站上描述的那样,Selenium可以自动化操纵浏览器。完了!你

    2024年02月03日
    浏览(51)
  • selenium-webdriver调用谷歌浏览器和火狐浏览器

    nodejs selenium-webdriver 操作文档 https://www.npmjs.com/package/selenium-webdriver 1.调用谷歌浏览器 2.调用火狐浏览器 下面设置了一些选项 ​ 需要设置环境变量,在CMD中firefox可以打开浏览器 否则报错 Expected browser binary location, but unable to find binary in default location, no \\\'moz:firefoxOpti  

    2024年02月02日
    浏览(79)
  • 浏览器自动化脚本 Selenium WebDriver 快速入门

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客 文章浏览阅读2.7k次,点赞85次,收藏12次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、

    2024年03月09日
    浏览(74)
  • 关于selenium库浏览器webdriver不能被找到的问题

    报错提示: selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for firefox using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location 意思就是找不到驱动火狐浏览器的webdriver,网络上回答的方法一般是:

    2024年02月08日
    浏览(57)
  • 解决Selenium WebDriver 加载页面时出现浏览器闪退

      如果不匹配的话,可以去以下网址下载https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/  如果还是不能解决selenium闪退,可以通过以下几行代码来解决此问题。

    2024年02月15日
    浏览(90)
  • PyCharm-selenium-webdriver实现自动打开浏览器

    打开pycharm,点击File-setting-点击加号 输入selenium,点击install package https://registry.npmmirror.com/binary.html?path=chromedriver/ 根据chrome的版本选择下载对应的插件版本 没有最新chrome版本对应的webdriver版本,就选择接近的版本 然后把下载的webdriver.exe复制到python安装目录和谷歌安装目录 并

    2024年02月12日
    浏览(55)
  • Selenium WebDrive使用Edge浏览器模拟登录163邮箱

    ** ** 1.首先要在pycharm中下载好Selenium 2.然后下载浏览器驱动这里是链接 (https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/) *注意版本要一致 *注意放置的位置要在python3.7(这里是我用的)的更目录下也就是找到python文件夹打开后放进去有些资料说要改名这里不用因为Seleni

    2023年04月15日
    浏览(58)
  • Selenium Edge的无头浏览器模式以及反WebDriver检测

            由于本人只使用Edge浏览器,所以在得知Selenium对PantomJS的支持取消后,在网上找了各种关于Edge浏览器的资料。配置Selenium Edge有多种方法,但这里只介绍一种方法。 MSEdgeDriver下载地址  此处需要注意将浏览器更新到最新版本,以及选择正确的下载通道 解压下载的压缩

    2023年04月09日
    浏览(60)
  • 当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,今天在针对js动态网页爬虫时,使用代理并使用Selenium,打开网页时,浏览器总是一闪而退,代码如下: from selenium import webdriver from seleniumwire import webdriver from selenium.webd

    2023年04月09日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包