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

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

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


一个做测试的居然让我教她怎么做自动化测试,真是反了……行吧,正好懂一些 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 ,不同的浏览器需要下载不同的驱动,以下是常见浏览器驱动的下载地址:

浏览器

下载地址

Chrome

https://sites.google.com/a/chromium.org/vhromedriver/downloads

Edge

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

Firefox

http://github.com/mozilla/geckodriver/releases

Safari

https://webkit.org/blog/6900/webdriver-support-in-safari-10/

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

d50427d6ac8664ea103eaed15dc2c3e3.png


简单开始


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

Chrome 浏览器

// 导入 webdriver

from selenium import webdriver

// executable_path 用于指定driver存放路径

browser = webdriver.Chrome(executable_path='/Users/xx/python/chromedriver')

// 打开百度页面

browser.get('https://wwww.baidu.com/')

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

a63d3c42ee4b5452e2cd3316505652cc.png

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

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

Firefox 浏览器

// 导入 webdriver

from selenium import webdriver

// executable_path 用于指定driver存放路径

browser = webdriver.Firefox(executable_path='/Users/xx/python/firefoxdriver')

// 打开百度页面

browser.get('https://wwww.baidu.com/')

EDGE 浏览器

// 导入 webdriver

from selenium import webdriver

// executable_path 用于指定driver存放路径

browser = webdriver.Edge(executable_path='/Users/xx/python/edgedriver')

// 打开百度页面

browser.get('https://wwww.baidu.com/')

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


简单使用


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

// 导入 webdriver

from 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,然后看下效果:

5801487463fa277380e4ad2838a2a760.png

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

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

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


总结


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

相关文章
|
存储 JavaScript 安全
npm详解
npm详解
1473 4
|
存储 NoSQL 数据可视化
论文图谱当如是:Awesome-Graphs用200篇图系统论文打个样
试想在你刚接触一个陌生的技术领域时,如果有办法以“上帝视角”看到该领域完整的历史发展轨迹,是否可以让自己的技术探索更有的放矢,胸有成竹呢?是的,你没猜错,这个玩意儿叫论文图谱。我通过“人肉扫描”了200多篇图计算系统的论文,整理了心中理想的“图系统论文图谱”原型,大家可以“类比想象”一下当下关注技术领域的论文图谱应当如何。
论文图谱当如是:Awesome-Graphs用200篇图系统论文打个样
|
搜索推荐 Java 开发者
java开源进销存系统,代码简洁非常好用
管店云是一款备受好评的Java开源进销存系统,能够帮助企业实现门店高效管理。
462 0
java开源进销存系统,代码简洁非常好用
|
存储 前端开发 JavaScript
2023年前端流行什么技术和框架了?
2023年前端流行什么技术和框架了?
277 0
|
负载均衡 Kubernetes 算法
如何使用Docker来实现Nginx的负载均衡和反向代理
如何使用Docker来实现Nginx的负载均衡和反向代理
847 1
|
存储 网络协议 网络性能优化
TCP 滑动窗口详解(非常实用)
TCP 滑动窗口详解(非常实用)
|
数据安全/隐私保护 安全
单点登录(SSO)看这一篇就够了
背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次登录,而且每个系统的账号都不一样,这对于运营人员来说,很不方便。
275459 15
|
运维 Ubuntu JavaScript
【Linux | 学习路线分享】
【Linux | 学习路线分享】
347 0
【Linux | 学习路线分享】
|
存储 人工智能 索引
|
设计模式 中间件
【设计模式】外观
【设计模式】外观
160 0
【设计模式】外观