使用webdriver-manager自动下载浏览器驱动(python)


使用webdriver-manager自动下载浏览器驱动,再也不用担心webdriver版本问题

文章目录

01 简介
02 安装webdriver_manager
03 ChromeDriver
3.1 Selenium 3 用法
3.2 Selenium 4 用法
04 EdgeChromiumDriver
4.1 Selenium 3 用法
4.2 Selenium 4 用法
05 GeckoDriver
5.1 Selenium 3 用法
5.2 Selenium 4 用法
06 IEDriver
6.1 Selenium 3 用法
6.2 Selenium 4 用法
07 OperaDriver
7.1 Selenium 3 用法
7.2 Selenium 4 用法

01 简介


在我们使用 Selenium 进行 Web UI 自动化测试时,通常需要自己单独去下载对应各浏览器版本的webdriver,并在后期针对不同操作系统(mac、windows、linux)或者不同浏览器版本都要反复选择对应版本webdriver。

为了解决这个问题,webdriver-manager 第三方库应运而生,它可以自动帮你识别当前运行环境下系统信息以及对应浏览器信息,并自动下载对应的webdriver,再也不用担心webdriver版本问题了!
webdriver-manager 库提供了自动管理不同浏览器驱动程序的方法。主要思想是简化不同浏览器的二进制驱动程序的管理。
webdriver-manager支持 Selenium 3以及 Selenium 4。后续我会分别针对 Selenium 3以及 Selenium 4教大家怎么使用webdriver-manager。

webdriver-manager目前支持如下浏览器驱动:
ChromeDriver
EdgeChromiumDriver
GeckoDriver
IEDriver
OperaDriver

02 安装webdriver_manager

官方地址:https://pypi.org/project/webdriver-manager/

我们可以使用如下命令安装:pip install webdriver_manager

03 ChromeDriver

3.1 Selenium 3 用法


# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# selenium 3的写法
driver = webdriver.Chrome(ChromeDriverManager().install())

3.2 Selenium 4 用法

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
# selenium 4的写法
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

04 EdgeChromiumDriver

4.1 Selenium 3 用法

# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
# selenium 3
driver = webdriver.Edge(EdgeChromiumDriverManager().install())

4.2 Selenium 4 用法

# selenium 4
from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
# selenium 4
driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))

05 GeckoDriver

5.1 Selenium 3 用法

# selenium 3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
# selenium 3
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

5.2 Selenium 4 用法

# selenium 4
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
# selenium 4
driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

06 IEDriver

6.1 Selenium 3 用法

# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager
# selenium 3
driver = webdriver.Ie(IEDriverManager().install())

6.2 Selenium 4 用法

# selenium 4
from selenium import webdriver
from selenium.webdriver.ie.service import Service as IEService
# selenium 4
driver = webdriver.Ie(service=IEService(IEDriverManager().install()))

07 OperaDriver

7.1 Selenium 3 用法

# selenium 3
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.opera import OperaDriverManager

# selenium 3
webdriver_service = service.Service(OperaDriverManager().install())
webdriver_service.start()
driver = webdriver.Remote(webdriver_service.service_url, webdriver.DesiredCapabilities.OPERA)

7.2 Selenium 4 用法

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.opera import OperaDriverManager

# selenium 4
webdriver_service = service.Service(OperaDriverManager().install())
webdriver_service.start()
options = webdriver.ChromeOptions()
options.add_experimental_option('w3c', True)
driver = webdriver.Remote(webdriver_service.service_url, options=options)
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL进阶知识:二

目录 视图 基本语法 视图的更新 视图的作用 存储过程 介绍 存储过程基本语法 存储过程的变量 系统变量 用户自定义变量 局部变量 存储过程的判断逻辑 存储过程的参数 存储过程中的流程控制 存储过程中的循环 while的基本语法 repeat的基本语法 loop的基本语法…

金山办公前端二面

1. react 和 vue的区别 还有jquery? (1) jquery 和 vue、react 的区别: vue 和 react : 数据和视图分离 以数据驱动视图,只关心数据变化 dom 操作被封装(数据驱动) jquery:依靠 do…

【问题解决!】OSError: [WinError 1455] 页面文件太小,无法完成操作。Error loading “c:\Anaconda3\lib

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 问题描述问题原因二、解决方法 问题描述 在使用pytorch跑深度学习的时候报错OSError: [WinError 1455] 页面文件太小,无法完成操作。Error loading “c…

系列七、事务

一、事务 1.1、概述 事务是数据库操作的基本单元,它是指逻辑上的一组操作,要么都成功,要么都失败。典型场景:转账,例如Jack给Rose转账1000元,转账成功:Jack账户的余额少1000元,Rose…

【C++】enum枚举与强类型枚举

enum 文章目录 enumenum枚举枚举变量强类型枚举 enum枚举 C的enum工具提供了一种创建符号常量的方式,这种方式可以替代const 枚举类型定义用关键字enum标识 enum 标识符 {枚举数据表 };枚举数据表的值都是整数。第一个枚举成员的默认值为整型的0&…

人脸识别经典网络-MTCNN(含Python源码实现)

人脸检测-mtcnn 本文参加新星计划人工智能赛道:https://bbs.csdn.net/topics/613989052 文章目录 人脸检测-mtcnn1. 人脸检测1.1 人脸检测概述1.2 人脸检测的难点1.3 人脸检测的应用场景 2. mtcnn2.1 mtcnn概述2.2 mtcnn的网络结构2.3 图像金字塔2.4 P-Net2.5 R-Ne…

戴尔科技推出全新96核Precision 7875塔式工作站

工作站行业一直是快节奏且充满惊喜的。在过去25年中,戴尔Precision一直处于行业前沿,帮助创作者、工程师、建筑师、研究人员等将想法变为现实,并对整个世界产生影响。工作站所发挥的作用至关重要,被视为化不可能为可能的必要工具。如今,人工智能(AI)和生成式AI(GenAI)的浪潮正在…

西南科技大学C++程序设计实验二(类与对象一)

C++最大的特点就是面向对象,掌握它的几种基本性质还是好理解的,可以看我C++专栏的期末速成,希望对你们学习C++有帮助。 一、实验目的 1.理解简单类的定义、说明与使用 2.理解类中不同属性数据成员的访问特点 3.理解构造函数、析构函数的作用 重点:掌握类的定义与实现,…

MPPT工作流程及算法和硬件的选择

MPPT算法选择 目前,MPPT算法有开路电压比率(离线)、短路电流比率(离线)、观察调节(在线)、极限追踪控制法(在线)。 在光伏控制系统中,因为日照、温度等条件的变化,光伏电池的输出功率也是在不断变化的,为保证使得光伏电池的输出功…

vue3中的customRef创建一个自定义的 ref对象

customRef 创建一个自定义的 ref&#xff0c;并对其依赖项跟踪和更新触发进行显式控制 小案例: 自定义 ref 实现 debounce <template><div style"font-size: 14px;"><input v-model"text" placeholder"搜索关键字"/><…

linux shell下除了某个文件外的其他文件全部删除的命令

Linux反选删除文件 最简单的方法是 # shopt -s extglob &#xff08;打开extglob模式&#xff09; # rm -fr !(file1) 如果是多个要排除的&#xff0c;可以这样&#xff1a; # rm -rf !(file1|file2) Linuxrm删除指定文件外的其他文件方法汇总 一、Linux下删除文…

【Python】导入Excel数据表的几种方式

如何导入csv、xlsx格式的Excel&#xff1b;一张数据表里有多个sheet页&#xff0c;如何获取所有sheet页名字&#xff0c;并导入每张sheet页&#xff1b; 1. 导入CSV格式的Excel表&#xff1a; import pandas as pd import numpy as npdf_datapd.read_csv(数据底表.csv) print…

渗透测试考核--两层内网 cs windows socks5

这里考核为渗透 这里是网络拓扑图 这里记录一下 两台外网 两台内网 首先拿到C段 nmap进行扫描 外网1 nmap -p 80 172.16.17.2/24 主机存活 一般都是web服务入手 所以我们指定80端口 然后去查找开放的 最后获取到2个ip Nmap scan report for 172.16.17.177 Host is u…

如何高效批量生成条形码?

条形码作为商品、库存和信息管理的基础工具&#xff0c;扮演着至关重要的角色。为了满足用户对于高效、专业、多样化的条形码生成需求&#xff0c;我们推出了一款专业高效的在线条形码生成工具。 网址&#xff1a;https://www.1txm.com/ 多样化条形码支持 易条形支持多种常见…

java文件传输简单方法

java文件传输简单方法 假设现在已经打包了一个文件&#xff08;1233444333&#xff09;&#xff0c;要将这个文件传输给另一方&#xff1a; import java.io.*; public class F_PasswordUnPassword { public static void main (String[] args)throws Exception { ByteArrayOutp…

评价体系如何构建?

本文将针对权重计算的一些常见问题进行说明&#xff1a;如组合赋权法的综合权重值如何计算&#xff1f;多层级权重如何计算&#xff1f;用多种方法计算得到的权重如何合并为综合权重用于之后的分析&#xff1f;常见的不同权重计算方法的搭配方式&#xff1f; 一、九种权重计算…

nodejs之express学习(1)

安装 npm i express使用 // 导入 const express require(express) // 创建应用 const app express() // 创建路由 app.get(/home,(req,res)>{res.end("hello express") }) app.listen(3000,()>{console.log("服务已启动~") })路由的介绍 什么是…

5.27每日一题(判断函数在那个区间上有界:充分条件不是必要条件)

若f(x)在(a , b)上连续&#xff0c;且f(a0)&#xff0c;f&#xff08;b-0&#xff09;存在&#xff08;及函数的左右极限存在&#xff09;>f(x)在(a,b)上有界

神经网络:脑科学中功能MRI成像的应用及其一些相关概念

文章目录 一、MRI成像简介核磁共振成像&#xff08;MRI&#xff09;侵入式成像功能磁共振成像&#xff08;fMRI&#xff09;血氧水平依赖&#xff08;BOLD&#xff09;效应对比基线状态代理指标 二、fMRI具有延迟性及其解决方案原因解决方法 三、fMRI 数据处理1. 数据预处理2. …

【栈和队列(1)(逆波兰表达式)】

文章目录 前言什么是栈(Stack)栈方法栈的模拟实现链表也可以实现栈逆波兰表达式逆波兰表达式在栈中怎么使用 前言 什么是栈(Stack) 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0…