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)系统,其主要服务的对象主要是医院检验科工作人员,也是医院信息化建设必…...

Java基础学习(5)
Java基础学习一 面向对象1.1 介绍对象1.2 设计对象并使用1.2.1定义类的补充注意事项1.3 封装好处:1.3 private关键字1.4 this关键字1.5 构造方法构造方法的注意事项:1.6 标准的JavaBean1.7 对象内存图1.7.1 一个对象的内存图1.7.2 两个对象内存图1.7.两个引用指向同一个对象1.8…...

SpringBoot接口 - 如何生成接口文档之Swagger技术栈
SpringBoot开发Restful接口,有什么API规范吗?如何快速生成API文档呢?Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上&am…...

JavaScript execCommand函数
execCommand函数命令execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令。处理Html数据时常用如下格式:document.execCommand(sCommand[,交互方式, 动态参数]) ,其中:sCommand为指令参数(如下例中的”2D…...

2023年安徽省中职网络安全跨站脚本攻击
B-4:跨站脚本攻击 任务环境说明: √ 服务器场景:Server2125(关闭链接) √ 服务器场景操作系统:未知 √ 用户名:未知 密码:未知 1.访问服务器网站目录1,根据页面信息完成条件&am…...

Jmeter之常用断言总结篇
在使用Jmeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言。断言是在请求的返回层面增加一层判断机制,因为请求成功了,并不代表结果一定正确,因此需要判断机制提高测试准确性。本文主要介绍6种…...

Elasticsearch:如何在 Elastic 中实现图片相似度搜索
作者:Radovan Ondas 在本文章,我们将了解如何通过几个步骤在 Elastic 中实施相似图像搜索。 开始设置应用程序环境,然后导入 NLP 模型,最后完成为你的图像集生成嵌入。 Elastic 图像相似性搜索概览 >> 如何设置环境 第一步…...

一起Talk Android吧(第五百二十三回:获取位置信息经验总结)
文章目录 整体概述位置权限与蓝牙权限综合使用特殊机型的使用方法官方建议各位看官们大家好,上一回中咱们说的例子是"如何有效地获取位置权限",这一回中咱们说的例子是" 获取位置信息经验总结"。闲话休提,言归正转, 让我们一起Talk Android吧! 整体概…...

发光立方体效果 html+css
一.话不多,看效果 css简单创意特效,关注我看更多简单创意特效~ 二.实现(附完整代码) 定义标签: <div class"container"><div class"q1"></div><div class"h2"&…...

READ: Large-Scale Neural Scene Rendering for Autonomous Driving
READ: Large-Scale Neural Scene Rendering for Autonomous Driving :面向自动驾驶的大规模神经场景绘制 门卷积 https://www.jianshu.com/p/09fc8490104d https://blog.csdn.net/weixin_44996354/article/details/117409438摘要:论文提出了一种大规模神…...

Linux环境C语言开发基础
C语言是一门面向过程的计算机编程语言,与C、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言诞生于美国的贝尔实验室,由丹…...