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

目录
相关文章
|
14天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
11天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
48 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
11天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
29 4
|
11天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
23 2
|
6天前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
9天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
13天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
16天前
|
文字识别 自然语言处理 API
Python中的文字识别利器:pytesseract库
`pytesseract` 是一个基于 Google Tesseract-OCR 引擎的 Python 库,能够从图像中提取文字,支持多种语言,易于使用且兼容性强。本文介绍了 `pytesseract` 的安装、基本功能、高级特性和实际应用场景,帮助读者快速掌握 OCR 技术。
35 0
|
1月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
216 3
|
1月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
48 0
微信小程序更新提醒uniapp