Python自动化测试小程序编程:Selenium库使用

简介: Python自动化测试小程序编程:Selenium库使用

一、Selenium(WEB自动化工具)


1.简介


Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),火狐, 谷歌浏览器,360浏览器等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、JAVA,PHP等不同语言的测试脚本。


2.功能


框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。


使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。


使用简单,可使用Java,Python等多种语言编写用例脚本。


3.优势

据Selenium主页所说,与其他测试工具相比,使用Selenium的最大好处是:


Selenium测试直接在浏览器中运行,就像真实用户所做的一样。Selenium测试可以在Windows、Linux和Mac上的Internet Explorer、Chrome和Firefox中运行。其他测试工具都不能覆盖如此多的平台。使用Selenium和在浏览器中运行测试还有很多其他好处。


Selenium完全开源,对商业用户也没有任何限制,支持分布式,拥有成熟的社区与学习文档。


4.版本


4.1.selenium1.0


组件


selenium IDE


1、firefox插件(只支持Firefox)

2、用处

实现简单的自动化

用来提交bug(对于描述比较复杂的bug进行录制成脚本提供给开发回放)


511932c23fe24a8985e752e0377d3a27.png


selenium Grid


用来做分布式自动化,详见文档

独立的.jar包

selenium RC(Reomte Control)--核心

用处:

1、远程控制

2、不同语言,不同浏览器去使用

RC :不是一个独立的工具,是被集成在selenium server里面,后面Grid也被集成在里面


不同语言启动selenium的方法--RC原理


java(selenium -java.jar) ---> selenium server(.jar包) --->   Firefox

python(selenium -python.py)-->selenium server --> chrome浏览器


4.2.selenium 2.0


历史


Google WebDriver  -->  针对chrome浏览器的自动化


2009年,webdriver(稳定性好)与selenium1.0(支持多语言,多浏览器)合并 = selenium 2.0


selenium 1.0 + webdriver = selenium 2.0


RC与webdriver,在2.0放弃RC,因为要向下兼容,所以保留RC


主推的逻辑


由RC转换成webdriver


java(selenium -java.jar) --->集成在.jar包里面的驱动文件 --->   Firefox


python(selenium -python.py)-->chromedriver.exe(遵循webdriver的驱动文件) --> chrome浏览器


python(selenium -python.py)-->IEDriverServer.exe(遵循webdriver的驱动文件) --> IE浏览器


python(selenium -python.py)-->selenium server (遵循webdriver的驱动文件) --> safari浏览器


Web Driver W3C:webdriver的官方文档 WebDriver


由此可见,2.0虽然提高了稳定性,但是其他功能依旧杂乱。


4.3.selenium 3.0


浏览器驱动规范化:


各自的浏览器维护各自的浏览器


2016年 selenium beta版


java(selenium -java.jar) --->geckodriver.exe --->   Firefox浏览器(比较不稳定)


python(selenium -python.py)-->chromedriver.exe(遵循webdriver的驱动文件) --> chrome浏览器


python(selenium -python.py)-->IEDriverServer.exe(遵循webdriver的驱动文件) --> IE浏览器


python(selenium -python.py)-->驱动直接集成到Mac系统(OS X)(/user/bin/safaridriver)里面 --> safari浏览器


selenium 3.0 = selenium  2.0 - RC


二、使用步骤


1.安装Selenium


Python提供了第三方Selenium包,因此可以直接使用pip安装


pip install selenium


若是下载很慢的话使用镜像:


pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium==3.141.0


或者在anaconda上的Environments上指定虚拟环境下搜索下载selenium库:

d296b5ca12e6462196479023f8b9357c.png

apply下载就行。


2.下载浏览器驱动


1.谷歌浏览器驱动


我们之所能操作浏览器,是因为我们有该浏览器对应的驱动。若是缺少驱动我们并不能对浏览器进行操作:

首先我们需要知道浏览器的版本,输入:

chrome://version/

da24ff59d2474fcab4c86feb8168ba97.png

知道浏览器驱动之后便去官网找到相应的驱动下载:Chrome驱动下载


e1ad5bdd4c084844bc106e360c19cc34.png

这里下61就好了,之后选择对应操作系统的版本下载:


80bfad961d494c5cb5d2ba70d1a93518.png


把下载好的驱动放到Google Chrome的Application目录之下:

C:\Program Files (x86)\Google\Chrome\Application


9b31e47008854a98adb11446ccfe9fd8.png


之后在系统环境变量Path下加入路径的名称:

c24abc5744924dbdb7381556fd0582a5.png

2.火狐浏览器驱动


在selenium3.x开始,其在连接火狐浏览器时就需要下载对应的驱动了。

驱动下载地址:Fire Fox驱动下载

和谷歌驱动一样的步骤,这里不再重复。


3.测试


我们可以先初步使用代码来操作浏览器,看看安装的库是否管用:

  • webdriver.Chrome():连接谷歌浏览器
  • webdriver.Firefox():连接火狐浏览器
from selenium import webdriver
#打开谷歌浏览器
driver = webdriver.Chrome()
#打开火狐浏览器
driver1 = webdriver.Firefox()

Selenium包提供了打开某一个网页的接口方法:get(url)


from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

参数url:表示我们想要打开的某一个网页地址,该get()方法无返回值 。


8d03407fb031423d81ab70e1a030c7fb.png

这篇博客写到此,下一篇将写如何使用selenuim去定位浏览器元素实现自动化程序。

目录
相关文章
|
4月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
131 61
|
2月前
|
Web App开发 计算机视觉 开发者
Ruby自动化:用Watir库获取YouTube视频链接
Ruby自动化:用Watir库获取YouTube视频链接
|
4月前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
26天前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
54 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
15天前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
15天前
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
|
3月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
169 31
Selenium IDE:Web自动化测试的得力助手
|
1月前
|
Web App开发 数据采集 数据安全/隐私保护
Selenium库详解:Python实现模拟登录与反爬限制的进阶指南
Selenium库详解:Python实现模拟登录与反爬限制的进阶指南
|
3月前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
434 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
4月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
125 61

热门文章

最新文章