反了!居然让我教她自动化测试!

简介: Selenium 大家应该都很熟悉了吧,简单说它就是个基于浏览器的 Web 自动化测试工具,基本上是自动化测试人员首选工具。因为相比其他工具,它有很多的优势:支持多种语言,比如 Python、Java、C或C#、ruby 等都支持;支持多种浏览器, 比如 IE、FireFox、Safari、Opera、Chrome 这些主流浏览器基本都支持;支持多种操作系统,比如 Windows、Mac、Linux 这个款主流操作系统。其实单就上面这些优势就足以证明它的强大了,再加上它还支持分布式部署自动化测试程序,在多台不同的机器上同时执行。是不是感觉很厉害?然而这么强大的工具它居然还是免费的

微信图片_20220422151447.jpg

文 | 极光

来源:Python 技术「ID: pythonall」


一个做测试的居然让我教她怎么做自动化测试,真是反了……行吧,正好懂一些 Selenium,今天就来跟大家一起了解下 Python 如何使用 Selenium 进行自动化测试。


简单介绍


Selenium 大家应该都很熟悉了吧,简单说它就是个基于浏览器的 Web 自动化测试工具,基本上是自动化测试人员首选工具。因为相比其他工具,它有很多的优势:

  • 支持多种语言,比如 Python、Java、C或C#、ruby 等都支持;
  • 支持多种浏览器, 比如 IE、FireFox、Safari、Opera、Chrome 这些主流浏览器基本都支持;
  • 支持多种操作系统,比如 Windows、Mac、Linux 这个款主流操作系统。

其实单就上面这些优势就足以证明它的强大了,再加上它还支持分布式部署自动化测试程序,在多台不同的机器上同时执行。

是不是感觉很厉害?然而这么强大的工具它居然还是免费的,并且代码已经开源,这简直不敢想象。

说的这么厉害,那它要如何使用呢?


环境安装


首先你得先装好了 Python,然后通过 pip install selenium命令进行安装就可以了(参见 https://pypi.org/project/selenium/)。

安装完 selenium 后,还需要再下载 webdriver,不同的浏览器需要下载不同的驱动,以下是常见浏览器驱动的下载地址:

捕获.PNG


我平时都是用 Chrome 浏览器,所以我下载了 chromedriver ,但有一点需要注意,你下载的 chromedriver 版本要和你安装的浏览器版本一致,不然使用中可能会出现各种问题。


微信图片_20220422153323.png


简单开始

好了,现在我们就从最最简单的启动浏览器,然后打开一个网页开始。

  • Chrome 浏览器

2.PNG


写好后保存为 test1.py Python 文件,然后执行命令 python test1.py,然后就可以看到如下效果:


微信图片_20220422154252.png

程序通过selenium调用 chromedriver 驱动 Chrome浏览器启动,并让浏览器打开百度的首页,大概就是这么个过程。

除了使用 Chrome浏览器,我们也可以使用其他的,比如 FirefoxEDGE 等。

  • Firefox 浏览器

3.PNG


  • EDGE 浏览器

4.PNG


好了,通过对比上面代码相信你也能看出来,其实用哪个浏览器其实区别都不是很大,这里就不再一一截图了,接下来我就使用 Chrome 来介绍和演示效果了。


简单使用


当然启动浏览器,并打开页面我们只是走出了第一步,也就是写了个 Hello World,下面我们再慢慢介绍如何使用,再来看个简单例子:

5.PNG


好了,我们再保存下然后执行命令 python test1.py,然后看下效果:

微信图片_20220422154522.png



没错,这次是打开百度首页后,又在搜索框输入 python selenium 字符串,并且点击 百度一下 按钮搜索出了结果。

但它是怎么获取到搜索框,这里我们用的是 find_element_by_id()方法,也就是通过 HTML 标签元素的id 找到了这个输入框。

那除了通过这个方法,还有别的方法能找到搜索框吗?


总结


好了,今天我们简单介绍了下 selenium 是什么,以及在 Python 中如何安装配置使用 selenium。如果你也对这个工具感兴趣,可以继续关注了解更多。OK,今天就聊这些,如果你喜欢记得点 在看



相关文章
|
5天前
|
Web App开发 Java 测试技术
反了!居然让我教她自动化测试!
反了!居然让我教她自动化测试!
20 0
|
Web App开发 Java 测试技术
反了!居然让我教她自动化测试
一个做测试的居然让我教她怎么做自动化测试,真是反了……行吧,正好懂一些 Selenium,今天就来跟大家一起了解下 Python 如何使用 Selenium 进行自动化测试。
69 0
反了!居然让我教她自动化测试
|
测试技术
你真的需要自动化测试吗?
先想清楚场景和价值
72 0
|
测试技术
自动化测试理解
自动化测试理解
134 0
自动化测试理解
|
8月前
|
JSON Java 数据格式
【Java用法】Java读取本地文件内容,如txt, json等多种文件
【Java用法】Java读取本地文件内容,如txt, json等多种文件
74 0
|
18天前
|
SQL 缓存 Java
SQL Query Plan在Presto中的缓存设计与实现
阿里云日志服务(SLS)提供一站式数据采集、加工、查询分析、告警、可视化与投递等功能,其中查询分析以简单统一的接口提供大规模数据的查询、计算和分析能力,深受用户喜爱。 目前,分析系统每天接收5+亿次SQL查询请求,在底层,分析系统基于Presto内核,其中Coordinator节点上负载尤其严重,其...
SQL Query Plan在Presto中的缓存设计与实现
|
18天前
|
SQL canal 大数据
实践教程之如何将PolarDB-X与大数据等系统互通
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您使用PolarDB-X+Canal+Click...
46 0
实践教程之如何将PolarDB-X与大数据等系统互通
|
18天前
|
存储 机器学习/深度学习 缓存
链路追踪(Tracing)其实很简单——分布式链路追踪的挑战与限制
作者:夏明(涯海) 创作日期:2022-07-14 专栏地址:【稳定大于一切】【稳定大于一切】作为一门新兴技术,分布式链路追踪的技术演进史并不算长,仅有十数年。目前,它仍处于不断被探索、快速迭代的周期。为了更好的了解与应用分布式链路追踪技术,我们来看下它目前面临的几项关键挑战与限制。关键挑战与应对分...
链路追踪(Tracing)其实很简单——分布式链路追踪的挑战与限制
|
18天前
|
网络协议 NoSQL Serverless
Serverless架构的弹幕应用开发实践
Serverless的理念是即时弹性,用完即走。服务并非长时间运行,这也就意味着像websocket这种长链接的请求模式看起来并不适合Serverless,但是否有其他的办法既能满足长连接模式请求,也能够利用Serverless本身特性呢?答案是肯定的,我们通过API网关来解决webscoket连接的问题,然后由网关触达Serverless服务的后端,本文以弹幕场景为例来介绍如何使用Serverless架构实现全双工通信。
68 0
Serverless架构的弹幕应用开发实践
|
18天前
|
SQL JSON 监控
无需重启应用,动态采集任意点位日志
现实系统往往有着较高的复杂度。借助Trace、Log、Metric三驾马车,我们的系统具备了一定的可观测性。但观测位置和信息往往是固定的,而我们所遇到的问题常常是意料之外的。这就导致我们能够定位问题的范围难以更进一步。这时,我们需要在我们想要的位置采集信息,而在日常实践中,这就意味着我们需要添加日志...
44 0
无需重启应用,动态采集任意点位日志

热门文章

最新文章