2023最全Python+Selenium环境搭建教程-你绝对想不到有这么简单!
还有视频版本结合项目实战介绍,轻松学习!
Python+Selenium自动化测试环境搭建Web自动化测试全套教程_哔哩哔哩_bilibiliPython+Selenium自动化测试环境搭建Web自动化测试全套教程共计180条视频,包括:1、Web自动化测试需求和挑战、2、Web自动化环境搭建一键搭建、3、Web自动化之Selenium的八大定位策略等,UP主更多精彩视频,请关注UP账号。
https://www.bilibili.com/video/BV1zi4y1F7AY/?spm_id_from=333.337.search-card.all.click
一,Selenium 简介
Selenium是目前最流行的web自动化测试工具,也常用于网络爬虫,已经更新到3以上的版本。
1,组件
它提供了以下web自动化测试组件:
-
Selenium IDE,Firefox浏览器的一个插件,提供简单的脚本录制、编辑与回放功能;
-
Selenium Remote Control (RC),是selenium 1 提供的组件,包含:Selenium Server(用于提供自动化测试服务)、Selenium Client(用于执行脚本);
-
Selenium Grid,用于对测试用例集做分布式处理(并行),现已集成到selenium server中;
-
WebDriver,Selenium2(包括Selenium3)抛弃了Selenium RC,而是使用WebDriver。相比Selenium RC,Webdriver 的API更容易理解和使用,可读性和可维护性也有较大提高。
因为后面我们的web自动化测试使用的是Selenium3(即WebDriver),这里对WebDriver做一下说明:
-
Webdriver不依赖于任何测试框架,除了必要的浏览器驱动,无需启动其他进程,也不必像Selenium 1那样需要先启动服务;
-
设计模式:按照Server-Client的经典设计模式设计;
-
Server端:可以是任意的浏览器,当脚本启动浏览器时,该浏览器就是Server,它的职责是处理Client发送的请求并做出响应;
-
Client端:即我们的测试代码,测试代码发送HTTP请求给Server(即浏览器),Server接受请求,执行相应操作并返回结果;
-
不同的浏览器,WebDriver需要依赖对应的浏览器驱动(如 chromedriver.exe)来转化浏览器的native调用,所以进行Selenium自动化时,需先下载对应的浏览器的驱动。
2,特点
-
免费开源的自动化测试工具(框架)
-
支持多平台:windows、linux、MAC
-
支持多种浏览器:Chrome、Firefox、IE、Safari、Opera
-
支持多种开发语言: java、ruby、python、C、C#等
-
支持分布式执行测试用例集,即可并行执行测试
不过多赘述,当你看到这篇博客的时候,相信你已经对selenium有了个大概的认知。接下来我们开始在windows 10 上搭建python+selenium环境。
二,Python+Selenium环境搭建
1、Web自动化测试环境搭建配置信息
1.Python: Python3.8.3
2.编辑器: pycharm-community-2020.1.2
3.Web自动化测试工具: Selenium 3.141.0
4.浏览器:Chrome 83.0.4103.97(正式版本)
5.Webdirver: Chrome 83.0.4103.39
6.操作系统:Win10 64位
以上仅为个人配置,仅供参考。
2、Python安装
Python下载地址:Download Python | Python.org
步骤1:点击Python->Dowdloads->Windows,截图如下:

步骤2:点击Python3.8.3,进入python3.8.3下载页面:

找到Python3.8.3版本所有安装包列表,如下:

安装包介绍:

步骤3:点击Windows x86-64 web-based installer下载,选择“另存为”保存到本地,如图:

由于web-based installer下载的仅仅是一个exe可执行程序,存放到本地联网后双击,程序会自动下载安装文件进行安装,因此该程序本身很小,只有1.3MB。
web-based installer存放到本地,如图:

步骤4:点击本地Windows x86-64 web-based installer安装包,展示安装界面,开始安装:

该安装界面介绍:

步骤5:进入“Optional Features”界面,该界面选择项默认全选,无需修改,直接点击【NEXT】:

步骤6:跳转到“Advanced Options”界面,如下:

修改安装目录,勾选适用所有用户,点击【Install】开始安装,如下:

程序安装进行中,Python下载比较慢,整个安装过程大概40分钟:

步骤7:安装成功,点击【Close】:

3、验证安装结果

输入一行代码,敲回车,代码正确运行,表示安装成功,如图:

方法二:开始菜单,输入cmd,打开CMD窗口,输入Python命令:
输入python --version,查看python版本信息;
输入where python,查看python安装目录:
如图,表示已经安装成功:

三,PyCharm安装
Python下载地址:PyCharm: the Python IDE for Professional Developers by JetBrains
PyCharm安装,配置及使用可参考:
第一步,打开官网界面,进入到下载界面

第二步,打开安装包,开始安装

第三步,选择安装路径

第四步,一些功能的选择

第五步,直接下一步,点击Install

第七步,完成

3、环境变量的配置
- 第一步、右击此电脑点击属性,点击高级系统设置,点击环境变量,打开Path新建

- 第二步、查看Pycharm路径

- 第三步、拷贝路径,完成环境变量的配置

四,Selenium安装
Selenium既可以在本地cmd窗口使用pip命令安装,也可以在PyCharm虚拟环境或者本地环境安装目录下通过命令行使用pip命令进行安装。以下演示在本地cmd窗口使用pip命令安装的方法,前提是联网状态。
4.1 安装Python后,开始菜单运行窗口输入cmd敲回车,弹出cmd窗口,输入命令“where pip”,查找pip安装路径,如图:

4.2 cmd窗口,cd命令进入pip安装路径“D:\Program Files\Python38\Scripts”后,输入“pip install -U selenium”,安装最新版本的selenium,如图:

4.3 安装等待中,当出现“Successfully installed selenium...”表示Selenium已经安装成功。selenium-xx表示版本号。如图:

4.4 验证Selenium安装是否成功:
1)进入python解释器,输入from selenium import webdriver,没有报错。
2)切换至pip安装路径,输入命令pip list,可查看selenium安装版本信息,如图:

五,Chrome浏览器安装
5.1 Chrome下载安装
Chrome浏览器下载地址:Google Chrome 网络浏览器
下载安装完成后,查看Chrome版本信息,如图:

Chrome浏览器版本信息:83.0.4103.97(正式版本)
5.2 Chrome禁止自动更新设置
Web自动化测试时,Chrome浏览器和驱动版本必须匹配,否则执行程序时会报版本不一致的错误。如Chrome浏览器自动更新,更新升级后Chrome驱动可能就不适用了,需要经常替换Chrome驱动,比较麻烦。我们可以禁止Chrome浏览器自动更新。
5.2.1 点击控制面板->系统和安全->管理工具,双击服务图标,打开服务界面,禁用Google 更新服务 (gupdate),Google 更新服务 (gupdatem)
首先选中Google 更新服务 (gupdate),右键点击【属性】弹出属性窗口,启动类型选择”禁用”,点击【确定】,启动类型已更新为禁用。如图:

同样步骤禁用Google 更新服务 (gupdatem),如图:

六,Chrome浏览器驱动下载及配置
6.1 Chrome浏览器驱动下载
由于Chrome服务器在国内访问不到,可以使用淘宝的NPM镜像网站下载Chrome浏览器驱动,选择与自己浏览器版本最相近的驱动进行下载。
淘宝的NPM镜像网站下载地址:https://npm.taobao.org/mirrors/chromedriver
电脑安装的Chrome版本为83.0.4103.97,下载与Chrome浏览器版本最相近的驱动版本83.0.4103.39,点击链接,如图:

进入驱动下载页面,windows只有一个驱动,不区分32位和64位,直接下载chromedriver_win32.zip即可,如图:

安装包下载到本地,解压缩,如图:

6.2 Chrome浏览器驱动配置
配置方案一:
下载Chrome浏览器驱动,在本地解压缩后,将Chrome浏览器驱动存放目录配置到环境变量中。点击控制面板->系统和安全->系统->高级系统设置->环境变量,选中path变量,点击【编辑】按钮,进入编辑环境变量页面,如图:

点击【新建】按钮,将Chromedriver.exe存放路径拷贝进去,点击【确定】按钮,返回后点击【确定】,如图:

配置方案二:
下载Chrome浏览器驱动,在本地解压缩后,将Chrome浏览器驱动chromedriver.exe存放到与python.exe同一层级目录下,如图:

两种方式区别:两种配置方案选择其一即可,如果电脑下只安装了一个版本的Python,两种方法没有什么区别。但是如果电脑安装了多个版本的Python,采用方案二的方式,每个版本的Python安装目录下均要存放一个相应浏览器的驱动如chromedriver.exe,但采用方案一的方式配置,多个版本的Python不需要重新配置环境变量,均能根据环境变量的配置找到浏览器驱动程序,如本教程中的chromedriver.exe。
七,Wed自动化程序创建
前提:Chromedriver驱动采用在环境变量中配置的方法。
7.1 打开PyCharm,点击【Create New Project】,如图:

7.2 进入“New Project”页面,修改项目名称为“LearnPython”,勾选Existing interpreter(本地系统的解释器),点击“...”,选择本地的python.exe所在目录,添加,如图:

备注:PyCharm有一套虚拟环境和本地环境,两套环境的库相互独立,互不干扰。步骤四Selenium的安装是在本地环境cmd下安装的,因此创建项目时选择Existing interpreter。虚拟环境的库需要在PyCharm虚拟环境安装目录下用cmd命令行使用pip安装第三方库(Terminal界面)。
7.3 项目创建成功,点击项目“LearnPython”,右键选择“New”->“Python Flie”,录入文件名day20200609,双击Python Flie,创建成功,如图:

7.4 写一段自动化代码,点击【Run】->【Run】,测试程序,如图:

7.5 程序正常运行,后台无报错,如图:

前台页面跳转正常,如图:

web自动化环境搭建成功。
相关文章:
2023最全Python+Selenium环境搭建教程-你绝对想不到有这么简单!
还有视频版本结合项目实战介绍,轻松学习! PythonSelenium自动化测试环境搭建Web自动化测试全套教程_哔哩哔哩_bilibiliPythonSelenium自动化测试环境搭建Web自动化测试全套教程共计180条视频,包括:1、Web自动化测试需求和挑战、2…...
JavaSe第10次笔记
1.Java中,static不能修饰局部变量。 2.构造代码块:可用于成员变量的赋值,但需要注意的是,构造代码块最先执行(比构造方法先)。 3.静态代码块(可用于静态成员变量赋值):写法如下 static { 静态成员操作; } (比构造…...
【C语言笔记】自定义类型全解
【C语言笔记】自定义类型全解一、结构体1、什么是结构体2、结构体的声明与定义2.1、结构体的声明2.2、对结构体成员的访问2.3、对结构体成员的初始化2.4、结构体的不完整声明2.5、结构体嵌套定义3、结构体的自引用3.1、错误的自引用3.2、正确的自引用4、结构体大小的计算4.1、结…...
文心一言硬刚ChatGPT。文心一言能否为百度止颓?中国版ChatGPT“狂飙”的机会在哪儿?
一.文心一言介绍 今天,3月16日消息,百度于北京总部召开新闻发布会,主题围绕新一代大语言模型、生成式AI产品文心一言。百度首席技术官王海峰现在详解了文心一言背后的文心大模型及技术特性。 文心一言是新一代知识增强大语言模型࿰…...
【RabbitMQ笔记10】消息队列RabbitMQ之死信队列的介绍
这篇文章,主要介绍消息队列RabbitMQ之死信队列。 目录 一、RabbitMQ死信队列 1.1、什么是死信队列 1.2、设置过期时间TTL 1.3、配置死信交换机和死信队列(代码配置) (1)设置队列过期时间 (2ÿ…...
Python04 数据序列-字符串
Python04 数据序列-字符串 4.1 字符串概念 字符串是 Python 中最常用的数据类型。我们可以使用引号( ’ 或 " )来创建字符串。 格式: 变量名 数据 / "数据" / """ 数据 """案例: a hello world b &q…...
Redis限流接口防刷
Redis限流接口防刷 Redis 除了做缓存,还能干很多很多事情:分布式锁、限流、处理请求接口幂等性。。。太多太多了~ 大家好,我是llp,许久没有写博客了,今天就针对Redis实现接口限流做个记录。废话不多说&am…...
Yarn 资源调度器
Yarn 资源调度器:资源调度平台,负责为运算程序提供服务器运算资源 1 Yarn 基础架构 YARN 主要由 ResourceManager、NodeManager、ApplicationMaster 和 Container 等组件构成。 MR 程序提交到客户端所在的节点。YarnRunner 向 ResourceManager 申请一个…...
通达信 34日上升三角形主图源码
请先看效果图。 以下是编程源码,可以参考学习一下: N:34;{三角背景} 趋势下:DRAWLINE(HHHV(H,N),H,LLLV(L,N),L,0),LINETHICK2,COLORMAGENTA; SX:REF(趋势下,1)<趋势下; SS:DRAWLINE(SX,趋势下,REF(SX,1),REF(趋势下,1),1); DRAWBAND(SS,RGB(0,0,16…...
CSDN周赛第37期题解(Python版)
这期周赛题目和测试集还算完整,没有出现往期的bug。1、题目名称:幼稚班作业幼稚园终于又有新的作业了。 老师安排同学用发给同学的4根木棒拼接成一个三角形。 当然按照正常的逻辑,如果不能拼接成三角形。 必然要折断某个木棍来拼接三角形。 可…...
程序调试方法
调试思路 程序中一定要尽可能的做容错处理,可能会出错的地方,增加打印日志,这样在出问题时候才能最快的定位问题,所以这个属于前置工作,前置做的越多越好,后期调试越省力,程序也更健壮。学会看…...
【Android入门到项目实战--2.3】—— 活动的四种启动模式(standard、singleTop、singleTask、singleInstance)
目录 一、活动的启动模式 1、standard 2、singleTop 3、singleTask 4、singleInstance 本篇文章主要讲解活动的生命周期和活动的启动模式。 一、活动的启动模式 活动的启动模式共有4种,分别是standard、singleTop、singleTask和singleInstance; 可…...
SpringCloud微服务技术栈.黑马跟学(三)
SpringCloud微服务技术栈.黑马跟学 三今日目标1.初识Docker1.1.什么是Docker1.1.1.应用部署的环境问题1.1.2.Docker解决依赖兼容问题1.1.3.Docker解决操作系统环境差异1.1.4.小结1.2.Docker和虚拟机的区别1.3.Docker架构1.3.1.镜像和容器1.3.2.DockerHub1.3.3.Docker架构1.3.4.…...
学习Java——集合类
目录 1.Collection和Collections区别 2.Set和List区别 3.ArrayList和LinkedList和Vector的区别 4.Set如何保证元素不重复 5.Arrays.asList获得的List使用时需要注意什么 1.Collection和Collections区别 Collection 是一个集合接口。 它提供了对集合对象进行基本操作的通用…...
[前端笔记035]vue2之脚手架vue-cli
前言 本笔记参考视频,尚硅谷:BV1Zy4y1K7SH p61 - p95 简介 Vue 脚手架是 Vue 官方提供的标准化开发工具,vue-cli使用步骤 如果下载缓慢请配置 npm 淘宝镜像:npm config set registry http://registry.npm.taobao.org全局安装vue/cli&#…...
《Linux的权限》
本文主要对linux的一些基本权限进行讲解 文章目录前言Linux权限(1)权限的概念(2)linux下用户分类(root,普通)(3)linux的文件属性文件属性的分类文件权限修改文件权限1、chmod2、chown和chgrp3、fiile权限的三个重要的问题第一个问…...
js类型转换
类型转换 1.字符串转换 字符串转换在原来值的基础上加上 "" let num 1 num String(num) // "1"String(false) // "false"2.数字转换 在算数函数和表达式中,会自动进行数字转换。其自动完成的数字转换为隐式转换,也可…...
PostMan工具的使用
PostMan工具的使用 1 PostMan简介 代码编写完后,我们要想测试,只需要打开浏览器直接输入地址发送请求即可。发送的是GET请求可以直接使用浏览器,但是如果要发送的是POST请求呢? 如果要求发送的是post请求,我们就得准备页面在页…...
Sentinel 授权规则规则持久化
本篇博客我们来学习授权规则,授权规则是对请求者的一种身份的判断。 1、授权规则 授权规则是对请求者的身份做一个判断。你有没有权限来访问我?那就有人可能会说这个功能,好像以前我们在学习微服务的时候讲过网关他不就是把门的吗࿱…...
C#大型HIS医院LIS管理系统源码
▶ 一、实验室信息管理系统(LIS)是什么? 实验室信息管理系统也就是平时所说的LIS(Laboratory Information System)系统,其主要服务的对象主要是医院检验科工作人员,也是医院信息化建设必…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
