Selenium 自动化,如何下载正确的 ChromeDriver

在 Python 的 Selenium 自动化操作中,chromedriver 是不可或缺的驱动程序。没有正确安装对应版本的驱动,运行代码时常常会遇到报错问题,比如 “session not created: This version of ChromeDriver only supports Chrome version XX”。

今天,徐师兄带大家详细聊聊如何查看浏览器版本、下载正确的 chromedriver,以及其他浏览器驱动的获取方法,让你的自动化测试畅通无阻!


一、如何查看 Chrome 浏览器版本

在下载 chromedriver 之前,首先需要确认当前使用的 Chrome 浏览器版本号,因为驱动程序需要与浏览器版本严格匹配。以下是查看方法:

  1. 打开 Chrome 浏览器。
  2. 在地址栏输入 chrome://version/ 并按回车。
  3. 页面中会显示浏览器的详细信息,包括版本号。

如下图所示:

Chrome 浏览器版本信息

比如此处版本号为 79.0.3945.88,后续在下载驱动时需选择与此版本匹配的 chromedriver


二、下载适配的 ChromeDriver 驱动

chromedriver 是 Selenium 用于操控 Chrome 浏览器的必备工具。不同版本的 Chrome 浏览器需要对应版本的驱动程序,否则会出现兼容性问题。以下是具体步骤:

国内网盘下载地址
国内网盘下载地址
国内网盘下载地址

提供了常用的版本

在这里插入图片描述

在这里插入图片描述

1. 查找 ChromeDriver 的下载地址

目前推荐以下两个稳定的下载源:

  • 国内网盘下载地址
  • 关于ChromeDriver最新下载地址:https://googlechromelabs.github.io/chrome-for-testing/

这两个地址都可以快速获取到所需版本。

2. 确定版本号并选择适配文件

打开上述下载链接后,找到与你 Chrome 版本匹配的 chromedriver 版本。例如:

  • Chrome 版本为 79.0.3945.88,需下载 chromedriver 79.0.x

如下图所示,你可以在页面上清楚地找到需要的版本:

选择正确的 ChromeDriver 版本

3. 下载并解压

点击目标版本后,会跳转到系统选择页面。根据你使用的操作系统(Windows、Mac、Linux),下载对应的 .zip 文件。
下载完成后,将其解压,即可获得 chromedriver.exe 文件:

下载并解压 ChromeDriver

4. 配置环境变量

为了让代码能够正确调用 chromedriver,需将解压后的路径添加到系统的环境变量中:

  • Windows:在系统设置中编辑 Path 环境变量,添加 chromedriver.exe 的完整路径。
  • Mac/Linux:将解压文件放在 /usr/local/bin 或其他可访问路径。

三、其他浏览器驱动下载

如果你的自动化操作涉及其他浏览器,Selenium 也支持多种浏览器驱动。以下是几个常见驱动的下载地址:

1. Firefox 浏览器驱动
  • 驱动名称:GeckoDriver
  • 下载地址:https://github.com/mozilla/geckodriver/releases/

在页面上选择适合的版本与系统,下载后解压配置即可。

2. IE 浏览器驱动
  • 下载地址:http://selenium-release.storage.googleapis.com/index.html

注意:IE 浏览器的兼容性较差,建议尽量避免使用。


四、常见问题解答

  1. Q:下载的 ChromeDriver 与浏览器版本不匹配怎么办?
    A:请重新检查浏览器版本(通过 chrome://version),然后到下载页面选择正确的驱动版本。如果使用淘宝镜像,记得多刷新页面,确保列表是最新的。

  2. Q:环境变量配置后仍无法识别驱动怎么办?
    A:可以直接在代码中指定 chromedriver 的绝对路径,例如:

    from selenium import webdriver
    driver = webdriver.Chrome(executable_path="C:/path/to/chromedriver.exe")
    
  3. Q:如何验证驱动是否安装成功?
    A:在命令行输入 chromedriver --version,如果显示驱动的版本信息,则说明安装成功。


五、总结

通过本篇文章,你应该已经掌握了如何查看 Chrome 版本、下载匹配的 chromedriver,以及其他浏览器驱动的下载方法。在实际项目中,版本匹配和路径配置是关键所在,只有确保正确操作,才能顺利运行自动化测试。

希望徐师兄的这篇教程对你有所帮助,赶紧动手实践吧!
如果觉得文章有帮助,记得收藏加关注,让我们一起进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/949202.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

泊松融合 实例2025

目录 例子1: 实现代码: 原作者代码: 本博客直接给出来最好的效果和源代码 参数说明: 效果不好,不推荐的参数:MONOCHROME_TRANSFER,NORMAL_CLONE 例子1: 目标图: 原图: 效果图: 实现代码: 坐标是要目标图上中心点坐标: import cv2if __na

前端如何从入门进阶到高级

在前端学习的道路上,我们将其划分为三个阶段:入门、实战和进阶。以下是各阶段的学习指南 一、入门阶段 在入门阶段,我们的目标是掌握前端的基本语法和知识,以便能够独立解决一些基础问题。这一阶段,我们建议通过视频…

Python爬虫基础——认识网页结构(各种标签的使用)

1、添加<div>标签的代码定义了两个区块的宽度和高度均为100px&#xff0c;边框的格式也相同&#xff0c;只是区块中显示的内容不同&#xff1b; 2、添加<ul>和<ol>标签分别用于定义无序列表和有序列表。<il>标签位于<ul>标签或<ol>标签之…

基于W2605C语音识别合成芯片的智能语音交互闹钟方案-AI对话享受智能生活

随着科技的飞速发展&#xff0c;智能家居产品正逐步渗透到我们的日常生活中&#xff0c;其中智能闹钟作为时间管理的得力助手&#xff0c;也在不断进化。基于W2605C语音识别与语音合成芯片的智能语音交互闹钟&#xff0c;凭借其强大的联网能力、自动校时功能、实时天气获取、以…

Python提取目标Json键值:包含子嵌套列表和字典

目标&#xff1a;取json中所有的Name、Age字典 思路&#xff1a;递归处理字典中直接包含子字典的情况&#xff0c; import jsondef find_targ_dicts(data,key1,key2):result {}if isinstance(data, dict):if key1 in data and key2 in data: # 第一层字典中包含key1和key2re…

你已经分清JAVA中JVM、JDK与JRE的作用和关系了吗?

你已经分清JAVA中JVM、JDK与JRE的作用和关系了吗&#xff1f; 一. JVM、JDK与JRE的关系二. JVM、JDK与JRE的作用2.1 什么是JVM&#xff1f;2.2 什么是JDK&#xff1f;2.3 什么是JRE&#xff1f; 前言 点个免费的赞和关注&#xff0c;有错误的地方请指出&#xff0c;看个人主页有…

深度学习blog-RAG构建高效生成式AI的优选路径

RAG&#xff08;Retrieval-Augmented Generation&#xff09; 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;模型的性能和应用场景也不断扩展。其中&#xff0c;检索增强生成&#xff08;RAG, Retrieval-Augmented Generation&#xff09;模型作为一种新…

数据中台与数据治理服务方案[50页PPT]

本文概述了数据中台与数据治理服务方案的核心要点。数据中台作为政务服务数据化的核心&#xff0c;通过整合各部门业务系统数据&#xff0c;进行建模与加工&#xff0c;以新数据驱动政府管理效率提升与政务服务能力增强。数据治理则聚焦于解决整体架构问题&#xff0c;确保数据…

AI生成PPT,效率与创意的双重升级

AI生成PPT&#xff0c;效率与创意的双重升级&#xff01;在信息化高速发展的今天&#xff0c;我们的工作节奏被无限压缩&#xff0c;效率成为了衡量工作能力的重要指标。而制作PPT这种事&#xff0c;总是让人又爱又恨——既想做得出彩&#xff0c;又不想花费大量时间。现在有了…

【HF设计模式】05-单例模式

声明&#xff1a;仅为个人学习总结&#xff0c;还请批判性查看&#xff0c;如有不同观点&#xff0c;欢迎交流。 摘要 《Head First设计模式》第5章笔记&#xff1a;结合示例应用和代码&#xff0c;介绍单例模式&#xff0c;包括遇到的问题、采用的解决方案、以及达到的效果。…

嵌入式linux系统中QT信号与槽实现

第一:Qt中信号与槽简介 信号与槽是Qt编程的基础。因为有了信号与槽的编程机制,在Qt中处理界面各个组件的交互操作时变得更加直观和简单。 槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行。 案例操作与实现: #ifndef …

php有两个数组map比较 通过id关联,number可能数量变化 比较他们之间增加修改删除

在PHP中&#xff0c;比较两个通过ID关联的数组&#xff0c;并确定它们之间的增加、修改和删除操作&#xff0c;你可以使用以下步骤&#xff1a; 创建两个数组&#xff1a;假设你有两个数组&#xff0c;分别表示“旧数据”和“新数据”。使用ID作为键&#xff1a;为了方便比较&a…

C++和OpenGL实现3D游戏编程【连载19】——着色器光照初步(平行光和光照贴图)(附源码)

1、本节要实现的内容 我们在前期的教程中,讨论了在即时渲染模式下的光照内容。但在我们后期使用着色器的核心模式下,会经常在着色器中使光照,我们这里就讨论一下着色器光照效果,以及光照贴图效果,同时这里知识会为后期的更多光照效果做一些铺垫。本节我们首先讨论冯氏光照…

《learn_the_architecture_-_generic_interrupt_controller_v3_and_v4__overview》学习笔记

1.GIC是基于Arm GIC架构实现的&#xff0c;该架构已经从GICv1发展到最新版本GICv3和GICv4。 Arm 拥有多个通用中断控制器&#xff0c;可为所有类型的 Arm Cortex 多处理器系统提供一系列中断管理解决方案。这些控制器的范围从用于具有小型 CPU 内核数的系统的最简单的 GIC-400 …

健身房管理系统多身份

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端&#xff1a;Java、JavaWeb / Springboot。前端&#xff1a;Vue、HTML / CSS / Javascript 等。数据库&#xff1a;MySQL 二、相关软件&#xff08;列出的软件其一均可运行&#xff09; I…

General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model

通用 OCR 理论&#xff1a;通过统一的端到端模型实现 OCR-2.0 Abstract 随着人们对人工光学字符的智能处理需求日益增长&#xff0c;传统的OCR系统&#xff08;OCR-1.0&#xff09;已越来越不能满足人们的使用需求。本文&#xff0c;我们将所有人工光学信号&#xff08;例如纯…

大数据组件(二)快速入门数据集成平台SeaTunnel

大数据组件(二)快速入门数据集成平台SeaTunnel SeaTunnel是一个超高性能的分布式数据集成平台&#xff0c;支持实时海量数据同步。 每天可稳定高效同步数百亿数据&#xff0c;已被近百家企业应用于生产。 SeaTunnel的运行流程如下图所示&#xff1a; 工作流程为&#xff1a;So…

前端如何判断多个请求完毕

在前端开发中&#xff0c;经常会遇到需要同时发起多个异步请求&#xff0c;并在所有请求都完成后再进行下一步操作的情况。 这里有几个常用的方法来实现这一需求&#xff1a; 使用 Promise.all() Promise.all() 方法接收一个 Promise 对象的数组作为参数&#xff0c;当所有的…

【机器学习】穷理至极,观微知著:微积分的哲思之旅与算法之道

文章目录 微积分基础&#xff1a;理解变化与累积的数学前言一、多重积分的高级应用1.1 高维概率分布的期望值计算1.1.1 多维期望值的定义1.1.2 Python代码实现1.1.3 运行结果1.1.4 结果解读 1.2 特征空间的体积计算1.2.1 单位球体的体积计算1.2.2 Python代码实现1.2.3 运行结果…

基于Arduino的FPV头部追踪相机系统

构建FPV头部追踪相机&#xff1a;让你置身于遥控车辆之中&#xff01; 在遥控车辆和模型飞行器的世界中&#xff0c;第一人称视角&#xff08;FPV&#xff09;体验一直是爱好者们追求的目标。通过FPV头部追踪相机&#xff0c;你可以像坐在车辆或飞行器内部一样&#xff0c;自由…