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

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

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


简单介绍

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

·        支持多种语言,比如PythonJavaCC#ruby 等都支持;

·        支持多种浏览器, 比如 IEFireFoxSafariOperaChrome 这些主流浏览器基本都支持;

·        支持多种操作系统,比如WindowsMacLinux 这个款主流操作系统。

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

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

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

环境安装

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

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

浏览器 下载地址
Chrome https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox https://github.com/mozilla/geckodriver/releases
Safari https://webkit.org/blog/6900/webdriver-support-in-safari-10/

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

微信图片_20230522150801.png

简单开始

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

·        Chrome浏览器

// 导入 webdriverfrom selenium import webdriver// executable_path 用于指定driver存放路径browser = webdriver.Chrome(executable_path='/Users/xx/python/chromedriver')
// 打开百度页面browser.get('https://wwww.baidu.com/')

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

微信图片_20230522150840.png

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

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

·        Firefox浏览器

// 导入 webdriverfrom selenium import webdriver// executable_path 用于指定driver存放路径browser = webdriver.Firefox(executable_path='/Users/xx/python/firefoxdriver')
// 打开百度页面browser.get('https://wwww.baidu.com/')

·        EDGE 浏览器

// 导入 webdriverfrom selenium import webdriver// executable_path 用于指定driver存放路径browser = webdriver.Edge(executable_path='/Users/xx/python/edgedriver')
// 打开百度页面browser.get('https://wwww.baidu.com/')

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

简单使用

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

// 导入 webdriverfrom selenium import webdriver// executable_path 用于指定driver存放路径browser = webdriver.Chrome(executable_path='/Users/xx/python/chromedriver')
// 打开百度页面browser.get('https://wwww.baidu.com/')
// 在搜索框内输入 `python selenium并点搜索返回结果browser.find_element_by_id("kw").send_keys("python selenium")

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

微信图片_20230522151022.png

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

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

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

总结

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

 

目录
相关文章
|
16天前
|
Web App开发 Java 测试技术
反了!居然让我教她自动化测试!
反了!居然让我教她自动化测试!
反了!居然让我教她自动化测试!
|
2月前
|
存储 监控 安全
自动化测试适用场景
自动化测试适用场景
|
2月前
|
Web App开发 网络协议 测试技术
教你用Chrome 浏览器+Postman搞定接口测试
本文介绍了软件测试的两类主要类型:客户端测试(包括UI和兼容性测试)和服务端测试(主要为接口测试)。接口测试能直接检验服务端功能,尤其在复杂如阿里核心链路的系统中,它能更早发现潜在问题。分层测试模型显示,从单元测试到UI测试,越高层的测试发现bug的成本越高。尽管接口测试覆盖广泛,但不能替代客户端测试,因为UI测试关乎用户体验。文中推荐了Postman作为接口测试工具,并展示了如何使用Postman发送GET请求。此外,还介绍了cURL命令行工具及其在接口测试中的应用,包括模拟请求、修改参数和调试。通过实例,读者可以学习如何使用cURL进行GET、POST请求及设置认证和代理。
162 2
|
机器学习/深度学习 数据采集 人工智能
机器学习实战 | 自动化特征工程工具Featuretools应用
本篇讲解使用自动化特征工程工具Featuretools,对数据进行自动化特征工程的方法,并借助于BigMart Sales数据集来演示自动化特征工程的相关应用。
1512 0
机器学习实战 | 自动化特征工程工具Featuretools应用
mqc
|
缓存 安全 Java
测试之道--阿里巴巴八年测试专家倾情奉献
我从事测试工作将近八年了,从起初的不懂测试,怀疑测试,到相信测试,再到坚定测试,其中经历的辛酸、煎熬无法言表。在从事测试工作的这八年里,有人质疑,也有人追捧,唇枪舌剑,没完没了,貌似测试永远都是个站在舆论风口浪尖的角色。
mqc
7857 0
|
10月前
|
负载均衡 Java 调度
Hystrix和Sentinel熔断降级设计理念
Hystrix和Sentinel熔断降级设计理念
91 0
|
12月前
|
关系型数据库 MySQL Linux
部署MySQL数据库(Linux)
MySQL是一个关系型数据库管理系统,常用于LAMP和LNMP等网站场景中。本教程介绍如何在Linux系统ECS实例上安装、配置以及远程访问MySQL数据库。
2418 9
|
11月前
|
存储 弹性计算 运维
如何从用户视角搭建可观测体系?阿里云ECS业务团队的设计思路
本文以阿里云ECS业务为例,探讨阿里云最核心、亚太地区业务规模最大的产品之一,在极高的稳定性和性能要求下,如何基于云构建可观测性并从客户视角建立观测能力,以及在推进体系建设中的成功经验和待改进之处。
如何从用户视角搭建可观测体系?阿里云ECS业务团队的设计思路
|
10月前
|
搜索推荐 安全 数据挖掘
产品运营方法论:从目标拆解到策略重构
本文从产品运营的定义到作者对产品运营的理解以及一些工作中用到的方法论做了总结。
210897 33
|
数据可视化 测试技术
9个时间序列交叉验证方法的介绍和对比
在本文中,我们收集了时间序列的常用的9种交叉验证方法。这些包括样本外验证(holdout)或流行的K-fold交叉验证的几个扩展。
1165 0
9个时间序列交叉验证方法的介绍和对比