Python结合Selenium简单实现Web自动化测试

news2024/11/25 6:45:13

这篇文章是入门级别的应用Python + Selenium进行自动化测试,包括环境搭建及简单的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

这篇文章是入门级别的应用Python + Selenium进行自动化测试,包括环境搭建及简单的实例。基本思想是用Firefox Selenium IDE插件录制脚本并生成Python代码,用Python结合Selenium及浏览器驱动程序执行脚本。操作系统是Windows,过程中有不明白的地方记得百度下,比如不知道如何打开Windows CMD命令行、不知道如何设置环境变量等,因为本文的前提是读者已有一定的基础知识。

安装Python,访问其官网www.python.org下载最新版本,建议选择Python 3的安装(不要选择embeddable版本)版本,安装时记得勾选两项:将Python添加到环境变量和安装pip,一定记得选择这两项,为了给后面的步骤省去一些麻烦。

图片

安装完成后在CMD命令行输入python和pip验证是否安装妥当,如果不提示“不是内部或外部命令”则说明安装正常,否则可能是没有添加到环境变量。

图片

安装python selenium包,最简单的办法就是在CMD命令行输入python -m pip install selenium进行安装。注意这里有个pip, 就是上文让勾选安装pip的原因。下图中因为我的环境已经安装所以提示already satisfied。

图片

除了上面通过pip安装外也可以直接下载python的selenium安装包,可以在selenium官网(http://www.seleniumhq.org/download/)下载,下载后通过在命令行用python setup.py install安装,这里不介绍这种方法了。

图片

为Firefox安装Selenium IDE。这一步是为了用Firefox录制脚本,但不是必须的,因为也可以直接手工编写脚本,只是对于新手来说录制会方便点。打开Firefox, 在附加组件中搜索Selenium IDE,找到如图所示的组件,安装即可。

图片

重启Firefox后可以在工具菜单中看到Selenium IDE的选项,表示安装成功。

图片

接下来还要下载一些浏览器驱动程序(webdriver),注意Firefox是Selenium原生支持的,但似乎并不是所有Firefox版本都支持,所以我们要找一些驱动,另外目前看起来似乎Firefox在执行时并不稳定,而谷歌的Chrome浏览器比较好一点,所以我们这里选择Chrome。其驱动都可以在Selenium官网找到,包含IE及其它浏览器。

图片

上图中标记的两个分别用于Firefox和Chrome,下载后保存,添加到环境变量,为了方便起见,建议可以直接放到之前安装Python的目录下。注意,一定要保证驱动程序的目录添加到环境变量,否则不能执行。

图片

此时,简单的Selenium环境已经准备好了,下面以百度为例简单示范。

1,打开Firefox, 启动Selenium IDE

图片

2,弹出Selenium IDE窗口,Base URL输入http://www.baidu.com,右边的录制按钮保持录制打开(默认已经打开)

图片

3,在浏览器地址栏输入www.baidu.com,点击搜索,这时可以看到Selenium中已经生成了脚本信息,可以点击左上角的绿色按钮测试一下

图片

4,假设这时我们的录制已经结束,然后将该脚本导出为python代码,选择文件>Export Test Case As>Python,注意这里是python 2, 一般情况下关系不大,如果你的python环境是python 3则有些时候可能要对代码做一些修改

图片

5,保存为python源文件,即以.py为后缀

图片

6,打开生成的代码,默认是以Firefox浏览器作为driver,建议改为Chrome

图片

7,此时可以通过python执行测试,打开CMD命令行,进入到刚才存放python代码的目录,输入python test.py执行

图片

8,如果前面步骤都正确的话,这时会自动打开浏览器,打开百度进行搜索。如果有错误的话就要逐步排除,那就不是三言两语能说清楚的了。另外建议用Sublime Text 3,安装后直接打开py文件,按Ctrl+B执行。

本文只是简单说明Selenium环境搭建,Selenium还有很多其它东西,如元素的定位,分布式任务等,均不在本文范围。

到此这篇关于Python结合Selenium简单实现Web自动化测试的文章就介绍到这了!

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

资料获取方式 :

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

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

相关文章

数据库及数据表的相关操作(一)

目录 一、管理逻辑库与数据表二、常用数据类型和约束2.1 数字数据类型2.2 字符串数据类型2.3 日期数据类型2.4 字段约束 三、索引运行机制和使用原则3.1 创建索引3.2 添加与删除索引3.3 索引的使用原则 一、管理逻辑库与数据表 sql语言的分类: ​ DML数据操作语言…

linux之Ubuntu系列(四)用户管理 用户和权限 chmod 超级用户root, R、W、X、T、S 软链接和硬链接 shell

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。 w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移…

linux之Ubuntu系列(-)常见指令 重定向

Ubuntu 中文 版本 注意点 通过修改语言改成英文 在终端录入:export LANGen_US 在终端录入:xdg-user-dirs-gtk-update 单用户和多用户 命令格式 command [-选项] [参数] –查看命令的帮助 命令 --help man 命令 |操作键| 功能| |空格键|-显示手册的下…

Kafka 入门到起飞系列 - 生产者发送消息流程解析

生产者通过producerRecord 对象封装消息主题、消息的value(内容)、timestamp(时间戳)等 生产者通过send()方法发送消息,send()方法会经过如下几步 1. 首先将消息交给拦截器(Interceptor)处理, 拦截器对生产者而言&…

Java编程-IDEA中Java的main方法psvm、sout快捷键设置

目的 我打出psvm这四个字母时,可快速打出main方法 我打出syso,sout时,可快速打出System.out.println(); 步骤: 1、打开IDEA,点击文件,选择Editor中的 Live Templates选项,点击右侧边栏中的 号 2、选中…

教你用Python+selenium搭建自动化测试环境

今天给大家带来的是关于Python的相关知识,文章围绕着如何用Pythonselenium搭建自动化测试环境展开,文中有非常详细的介绍,需要的朋友可以参考下 一、环境搭建 1、安装pythonpycharm软件 。python安装网址官网:About Python™ | Python.org 根据自己的电脑系统选择…

设计模式 ~ 发布订阅模式

概念 用于实现对象之间的松耦合通信; 在该模式中,存在一个或多个发布者(Publishers)和一个或多个订阅者(Subscribers); 发布者负责发布消息,而订阅者负责订阅感兴趣的消息并在接收到…

Java中高级面试题,开发模拟练习

1.Redis为什么这么快? Redis是单线程的,避免了多线程的上下文切换和并发控制开销;Redis大部分操作时基于内存,读写数据不需要磁盘I/O,所以速度非常快;Redis采用了I/O多路复用机制,提高了网络I/O并发性;Redis提供高效的数据结构&…

数据科学团队的角色分工

描述数据科学团队中角色分工常用下列维度。进一步以数据可视化直观表达的能力雷达图: ML Ops - 机器学习运维 Data Pipelines - 数据流水线 Database - 数据库 Data Viz - 数据可视化 Storytelling - 数据讲故事 Business Insights - 业务洞察 Reporting - 报告 Experimentatio…

Apache和Nginx是什么?|Nginx和Reactor是什么?|网路IO的本质|阻塞队列|异步非阻塞IO

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量干货博客汇总https://blog.csdn.net/yu_cblog/c…

pandas 笔记:melt函数

和pivot_index 相反,前者是长表转宽表,melt是宽表转长表 pandas 笔记:pivot_table 数据透视表_UQI-LIUWJ的博客-CSDN博客 1 基本使用方法 pandas.melt(frame, id_varsNone, value_varsNone, var_nameNone, value_namevalue, col_levelNone…

【Linux】Zookeeper集群 + Fafka集群

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Zookeeper集群 Fafka集群 Zookeeper 概述Zookeeper 定义Zookeeper 工作机制Zookeeper 特点Zookeeper 数据结构Zookeeper 应用场景Zookeeper 选举机制 Kafka 概述为什么需要消…

⚡【C语言趣味教程】(3) 浮点类型:单精度浮点数 | 双精度浮点型 | IEEE754 标准 | 介绍雷神之锤 III 源码中的平方根倒数速算法 | 浮点数类型的表达方式

🔗 《C语言趣味教程》👈 猛戳订阅!!! ​—— 热门专栏《维生素C语言》的重制版 —— 💭 写在前面:这是一套 C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅&#…

laravel 的SQL使用正则匹配

案例场景 精准正则匹配 查询结果 代码如下 $regexp ^ . $new_str . [^0-9];$info Test::query()->where(is_del, 0)->whereRaw("name REGEXP $regexp")->pluck(name, id)->toArray();字符 “^” 匹配以特定字符或者字符串开头的文本 name 字段值包含…

国产单片机(沁恒微WCH)CH32V307评估板初探

国产单片机(沁恒微WCH)CH32V307评估板初探 关于沁恒微:国产芯厂家、官网链接 公司简介 - 南京沁恒微电子股份有限公司 (wch.cn) 开发板资源: 评估板应用于 CH32V307 芯片的开发,IDE 使用 MounRiver 编译器,可选择使用板载或独…

Python自动化办公:docx篇

文章目录 简介官方demo读取并修改已存在的docx参考文献 202201笔记迁移 简介 python的docx包是可以用来自动化处理docx文件,可以从无到有生成一个docx文件,也可以对已有的docx文件做批量修改。(但印象里是只能操作.docx文件,如果…

【电路原理学习笔记】第5章:串联电路:5.2 串联电路的总电阻

第5章:串联电路 5.2 串联电路的总电阻 5.2.1 串联电阻相加 由于每个电阻对电流的阻力与其阻值成正比,因此,当电阻串联时,电阻值要相加串联电阻的数量越多,对电流的阻力就越大,也就意味着更大的电阻。因此…

收入下滑,亏损严重,面临法律诉讼的中驰车福申请纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,来自北京的汽车产业供应链数字化服务商【中驰车福】(Autozi Internet Technology (Global) Ltd)近期已向美国证券交易委员会(SEC)提交招股书&#x…

新建Mybatis流程

删除src目录 pom文件夹下导入依赖 这样的话每次只用改父项目的内容,就不必每次都导包 1.修改这三个文件 2.mybatis-config.xml的配置文件有顺序的规定,properties需要写在最上面。 3.类型别名

Bridging the Gap Between Anchor-based and Anchor-free Detection via ATSS 论文学习

1. 解决了什么问题? Anchor-based 和 anchor-free 方法的本质差异其实是如何定义正负样本,如果训练过程中它们采用相同的正负样本定义,最终的表现是差不多的。也就是说,如何选取正负样本才是最重要的。 以单阶段 anchor-based 方…