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去定位浏览器元素实现自动化程序。

目录
相关文章
|
9天前
|
设计模式 安全 测试技术
深入理解与应用自动化测试框架 — 以Selenium为例网络防线的构筑者:洞悉网络安全与信息安全的核心要素
【5月更文挑战第29天】 在快速迭代的软件开发过程中,自动化测试已成为提高测试效率、确保软件质量的重要手段。本文将深入探讨自动化测试框架Selenium的核心概念、架构以及实际应用中的关键技巧,旨在为读者提供一篇系统性的分析与实践指南。文章首先概述了自动化测试的必要性和Selenium框架的基本特征;随后详细剖析了Selenium的组件结构,并结合实例讲解如何高效地设计和执行测试用例;最后,讨论了当前自动化测试面临的挑战及未来发展趋势。
|
2天前
|
测试技术 Python
【Python自动化测试】:Unittest单元测试与HTMLTestRunner自动生成测试用例的好帮手
【Python自动化测试】:Unittest单元测试与HTMLTestRunner自动生成测试用例的好帮手
|
3天前
|
存储 安全 测试技术
《手把手教你》系列技巧篇(六十三)-java+ selenium自动化测试 - cookie -上篇(详细教程)
【6月更文挑战第4天】本文介绍了Cookie和Session的概念及其用途。Cookie是服务器发送到浏览器并存储在本地的小型文本文件,用于记录用户信息,如登录状态。它分为会话Cookie(关闭浏览器即消失)和永久Cookie(设置过期时间)。Session则是在服务器端保存用户状态的一种方式,比Cookie更安全,但会占用服务器资源。Selenium提供了操作Cookie的API,包括添加、删除和获取Cookie。文章还提到了Cookie的优缺点,如大小限制和潜在的安全风险。
8 1
《手把手教你》系列技巧篇(六十三)-java+ selenium自动化测试 - cookie -上篇(详细教程)
|
3天前
|
存储 数据管理 测试技术
构建Python构建自动化测试框架(原理与实践)
当谈到软件质量保证时,自动化测试是一个不可或缺的步骤。Python作为一种简单易学的编程语言,具有丰富的测试框架和库,使得构建自动化测试框架变得相对简单。本文将介绍如何使用Python构建自动化测试框架,包括选择合适的测试框架、编写测试用例、执行测试和生成报告等方面。
构建Python构建自动化测试框架(原理与实践)
|
4天前
|
Java 测试技术 Web App开发
《手把手教你》系列技巧篇(六十二)-java+ selenium自动化测试-RemoteWebDriver让你的代码与测试分离(远程测试)
【6月更文挑战第3天】本文介绍了在没有本地浏览器的情况下,如何使用RemoteWebDriver进行远程自动化测试。RemoteWebDriver分为客户端和服务端,客户端运行测试代码,服务端启动服务。服务端需要安装JDK、浏览器和对应的WebDriver,并启动selenium-server-standalone.jar。客户端通过URL连接到服务端,并指定预期的浏览器类型。这样,客户端的测试代码就能远程控制服务端的浏览器执行自动化测试。RemoteWebDriver的优点包括跨平台和浏览器测试、提高测试稳定性以及使测试环境和执行代码的机器分离。
22 3
|
5天前
|
测试技术 Python Java
《手把手教你》系列技巧篇(六十一)-java+ selenium自动化测试 - 截图三剑客 -下篇(详细教程)
【6月更文挑战第2天】本文介绍了使用Java + Selenium进行自动化测试时如何截图指定元素或目标区域。通过访问百度首页,点击设置并进入搜索设置页面,然后调用截图类截取并保存该页面的特定部分。代码示例展示了如何捕获元素的图像,并提供了截图功能的实现。最终,文章还展示了代码运行后的控制台输出、保存的截图以及浏览器的实际操作效果。
17 0
|
5天前
|
Web App开发 IDE 测试技术
使用Selenium进行自动化测试:从入门到实践
【6月更文挑战第1天】本文介绍了使用Selenium进行自动化测试的基础知识,包括Selenium工具集的三大组件:WebDriver、IDE和Grid。Selenium支持多种浏览器和编程语言接口。文中详细阐述了安装配置过程,如安装浏览器驱动和Selenium库,并提供了一个Python示例,演示如何初始化WebDriver、打开网页、操作元素及关闭浏览器。此外,文章指出Selenium可扩展实现更复杂测试,可与其他测试框架结合以提升测试效率。
|
6天前
|
机器人 Java 测试技术
《手把手教你》系列技巧篇(六十)-java+ selenium自动化测试 - 截图三剑客 -中篇(详细教程)
【6月更文挑战第1天】本文介绍了使用Java和Selenium进行自动化测试时的另一种截图方法,即利用Robot类实现全屏截图。Robot类能够捕获屏幕上的所有内容,包括任务栏和浏览器元素。测试场景包括访问指定网站、调用截图方法和保存截图。示例代码展示了如何使用Robot创建全屏截图并保存到特定文件夹。在运行代码前,需确保指定的保存路径存在,否则会报错。
23 4
|
7天前
|
敏捷开发 Java 测试技术
深入理解自动化测试框架Selenium的设计理念与最佳实践
【5月更文挑战第31天】 在现代软件开发过程中,自动化测试是确保产品质量和加快交付速度的关键因素。Selenium作为一种广泛使用的自动化测试框架,它支持多种浏览器、操作系统和编程语言,极大地方便了测试人员编写和维护测试用例。本文将探讨Selenium的核心设计理念,包括其架构、组件和工作流程,并分享如何在实际项目中应用Selenium的最佳实践,以提高测试效率和准确性。通过分析真实案例,我们将展示Selenium如何帮助企业实现持续集成和持续部署(CI/CD)的目标,同时保证软件的稳定性和可靠性。
|
7天前
|
前端开发 测试技术 API
深入理解自动化测试框架Selenium的设计与实现
【5月更文挑战第30天】 本文将深入探讨和分析自动化测试框架Selenium的设计理念、架构以及其在实际开发中的应用。Selenium作为一款广泛使用的开源自动化测试工具,它的灵活性和高效性使其成为Web应用测试的首选工具。文章将从Selenium的核心组件出发,详细解析其工作原理,并结合实际案例讨论如何优化测试脚本,提高测试效率。此外,还将介绍Selenium Grid的使用,展示如何通过分布式测试加速测试过程。最后,文章将展望Selenium在未来技术演进中可能面临的挑战和发展方向。