robotframework+selenium 进行webui页面自动化测试

robotframework其实就是一个自动化的框架,想要进行什么样的自动化测试,就需要在这框架上添加相应的库文件,而用于webui页面自动化测试的就是selenium库.

 关于robotframework框架的搭建我这里就不说了,今天就给大家根据一个登录的实例来讲一讲,selenium库的相关应用吧。 要想运用selenium库,首先是导入此库的信息。在哪里导入呢?

那就是在我们已经安装好的robotframework的操作页面即ride中导入。

打开ride,按照以下顺序依次建立项目:

1、新建测试项目

2、新建测试套件,在已经建好的项目下建立测试套件

3、新建测试用例,在已经建立好的套件下,创建自动化测试用例

建好以后的结构如下:

在建好的目录上左键单击套件名称,就会出现如下页面:

单击右上方的library标签,就会弹出如下页面:

在此页面,你可以直接在name栏输入selenium库文件名点OK,也可以点browse按钮,选择selenium库文件名,一般我是直接输入名称来导入的。

在这里输入的库文件名是Selenium2Library,导入成功后,在setting项目页面上就会一条黑色的记录展示出来,下图是导入了多个库以后的展示,如果导入失败,库名称将显示为红色,这时候你就要查看日志找原因了,这里就不多说了。

库文件可以导入在套件下,也可以在根目录下导入,不同位置导入的使用的范围不同,其它没有区别。

库文件导入成功以后,我们就可以开始webui页面自动化测试脚本的编写了。

我们就拿登录163邮箱来做一个测试吧。

登录163邮箱的测试用例大概是这样的:

首先是打开163邮箱登录页面

其次是输入正确的账号,密码

然后登录

最后是检查登录是否成功。

我们根据已经写好的测试用例步骤及检查结果来写这条自动化测试脚本,写好的脚本大概是这样的:

结合这个脚本给大家讲讲这里面这些字段的用法:

Teardown:这个字段可以理解为后处理,就是自动化脚本跑完做的一个处理,在运用selenium库进行自动化测试的时候,这里面一般是设置的close browse,就是自动化用例脚本跑完之后,关闭浏览器。

Timeout:超时时间设置,这个设置的作用就是防止自动化脚本在执行测试的时候卡在某一个环节一走卡着,不能进行下一条脚本测试。这个时间的设置要根据当前你测试脚本花费的时间来填写,并没有固定值。

这两个是测试脚本的一个预设值,接下来的内容就是登录163邮箱的一个实际测试脚本了。

我们的所看到的截图中的第一列蓝色的字体的关键字,其实也就是我们对应的操作动作。

Open browse:就是打开浏览器,这一行所对应的第二列就是我们要登录的163邮箱的地址,所对应的第三列就是浏览器类型,我们常用的浏览器类型有IE,chrome,firefox等,这个根据实际填写,所要说明一点的是,无论你输入的是哪个浏览器,在python的安装目录下,一定要有这个浏览器相应的驱动文件,有驱动文件版本必须与你电脑上当前安安装的浏览器版本是一致的,否则脚本运行就会报错。

Sleep:在打开浏览器这个动作后我用了一个关键字sleep,其实就是等待的意思,因为打开浏览器网页到页面完全展示出来是有一定时间的,所以在这里我用了一个sleep关键字,时间是根据网页完全展示出来的一个估算时间,你可以用wait until element contains这样一个关键字来等待

Select frame.:在完全展示出来后,这里又用一个select frame来选择一下窗口,sele为什么要用这个,是因为输入账号,密码,登录这几个选择在网页中用了这样的一个嵌套的格式,如果不用select frame来选择一下,无论我们账号,密码输入的定位多正确,自动执行测试的时候都无法输入账号,密码从而进行登录。

那么如何知道这个页面用了frame呢,就要通过查看网页的html代码来看了。像这个登录页面,当选中账号输入框时其位置代码相应位置被标蓝,顺着这个位置向上查它的父路径,发现有一个iframe标签,选中iframe. 标签这段代码,发现整个账号,密码框,登录所在的位置都被选中,说明这几个元素是在iframe标签下的,我们要定位这几个元素,需先选中切换到里面去。

像这种需要进行选择切换的还有网页内嵌套表格,通过跳转链接打开新的网页等,大家在进行元素定位时要多留意相应的标签,在进行元素定位时,使用正确的选择关键字。

如从百度首页通过链接进入hao123网页,因为是打开新的网页,在这里就用了switch window.

Input text:账号,密码输入,这行对应的第二列就是账号密码框所对应的位置,这个位置是如何定位出来的,这里用到了了selenium库中的元素定位。元素定位常用的有CSS,Xpath,name,id等,这里就不详述了,不会的可以到网上搜一下。

此两行所对应的第三列,就是相应的用户名和密码。在这里我把用户名和密码设置成一个变量,所以在用的时候是直接引用了变量名。

变量的设置很简单的,选中套件或根目录右键单击,在弹出的菜单中选中new scalar,,在接下来弹出的页面中,设置变量名,和变量值点OK就可以了,如用户名变量的设置:

Click element:这是一个单击鼠标左键的动作,所对应的第二列是此元素的位置路径。鼠标左键单击还有click button,click link,click button关键字一般用于元素type为button时,如果元素 type不是button类型的,用这个关键字,就不会执行这个鼠标动作。

Click link一般用于这个元素包含有超链接时,如百度首页的hao123图片,就带了一个超链接属性:

好了,接着上面的脚本来说,在登录动作后,这里又用了一个sleep,其实这里也可以用wait until这样的关键字的,这个看个人习惯,不论用哪一个等待,这个地方都是要等几秒中才能进行下一步操作的,原因同上。

unselect frame:这个是和select frame同对出现的,使用了select frame关键字之后,在跳出这个格式以后,一定要释放掉。

Element should be enabled:这是登录成功后的一个验证,验证页面是否跳转到了我们所期望的页面中去,那么这里的所对应的第二列的元素位置就是跳转以后可以代表这个页面的的一个元素的位置。

好了,用selenium库进行webui页面测试的相关内容就给大家介绍到这里。最后再给大家说一下,selenium库关键字有很多,要用哪个,怎么用记不住的话,可以在ride用例编写页面按F5 键查看哦。

Web自动化测试全套实战教程:Python+Selenium4环境搭建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/73654.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

淘宝API接口的实时数据和缓存数据区别

电商API接口实时数据是指通过API接口获取到的与电商相关的实时数据。这些数据可以包括商品库存、订单状态、销售额、用户活跃度等信息。 通过电商API接口,可以实时获取到电商平台上的各种数据,这些数据可以帮助企业或开发者做出及时的决策和分析。例如&…

web会话跟踪以及JWT响应拦截机制

目录 JWT 会话跟踪 token 响应拦截器 http是无状态的,登录成功后,客户端就与服务器断开连接,之后再向后端发送请求时,后端需要知道前端是哪个用户在进行操作。 JWT Json web token (JWT), 是为了在网络应用环境间传递声明而…

Vue3 大屏数字滚动效果

父组件&#xff1a; <template> <div class"homePage"> <NumRoll v-for"(v, i) in numberList" :key"i" :number"v"></NumRoll> </div> </template> <script setup> import { onMounted, r…

安装elasticsearch

一、docker安装elasticsearch 1、下载镜像 docker pull elasticsearch:6.5.4 2、启动容器 docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \ -e "discovery.typesingle-node" \ -e "cluster.nameelasticsearch" \ -e "ES_JAVA_OPTS-Xm…

答疑:Arduino IDE配置其他开发板下载速度慢

基于案例&#xff1a;Linux环境Arduino IDE中配置ATOM S3 通常&#xff0c;网络问题较多&#xff0c;可以使用一些技巧。 https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json 没有配置&#xff0c;不支持M5Stack&#xff08;ESP32&…

【设计模式】前端控制器模式

前端控制器模式&#xff08;Front Controller Pattern&#xff09;是用来提供一个集中的请求处理机制&#xff0c;所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志&#xff0c;或者跟踪请求&#xff0c;然后把请求传给相应的处理程序。以下是这种…

机器学习笔记之优化算法(十二)梯度下降法:凸函数VS强凸函数

机器学习笔记之优化算法——梯度下降法&#xff1a;凸函数VS强凸函数 引言凸函数&#xff1a;凸函数的定义与判定条件凸函数的一阶条件凸函数的梯度单调性凸函数的二阶条件 强凸函数强凸函数的定义强凸函数的判定条件强凸函数的一阶条件强凸函数的梯度单调性强突函数的二阶条件…

小白带你学习linux的MongoDB(三十四)

目录 一、概述 1、相关概念 2、特性 二、应用场景 三、安装 四、目录结构 五、默认数据库 1、admin&#xff1a; 2、local: 3、config: 六、数据库操作 1、库操作 2、文档操作 七、MongoDB数据库备份 1、备份命令 2、回数据库删除…

Android侧滑栏(一)可缩放可一起移动的侧滑栏

在实际的各类App开发中&#xff0c;经常会需要做一个左侧的侧滑栏&#xff0c;类似于QQ这种。 今天这篇文章总结下自己在开发中遇到的这类可以跟随移动且可以缩放的侧滑栏。 一、实现原理 使用 HorizontalScrollView 实现一个水平方向的可滑动的View&#xff0c;左布局为侧滑…

纷享销客稳居2022 H2 SFA SaaS 本土CRM厂商市场份额 TOP 1

近期&#xff0c;国际知名研究机构IDC公布了2022年下半年《中国客户关系管理(CRM)SaaS市场跟踪研究报告》&#xff0c;报告全面解析了中国CRM SaaS以及细分市场SFA SaaS的市场现状&#xff0c;并对全球各大厂商在中国SFA市场的份额占比进行了排名。连接型CRM开创者纷享销客在SF…

MyBatis-Plugin源码全面分析

三、MyBatis-Plugin 1. 基本开发方式 需求&#xff1a;在MyBatis执行之前打印一行醒目的日志&#xff0c;携带参数 实现Interceptor接口&#xff1a; Intercepts(Signature(type Executor.class,method "query",args {MappedStatement.class,Object.class, RowB…

600 V单管IGBT,可在电源应用中实现出色效率

基础半导体器件领域的高产能生产专家Nexperia (安世半导体)今日宣布&#xff0c;将凭借600 V器件系列进军绝缘栅双极晶体管(IGBT)市场&#xff0c;而30A NGW30T60M3DF将打响进军市场的第一炮。Nexperia在其庞大的产品组合中增加了IGBT&#xff0c;满足了市场对于高效高压开关器…

多个项目使用的node版本不一致?vscode dev container + docker 真香

一、接手的项目多了&#xff0c;什么node版本都有~ 遇到这种情况&#xff0c;多数情况会使用 nvm 进行 node 版本管理&#xff0c;具体使用方法可戳nvm的安装与使用。但若要并行开发两个不同环境下的项目&#xff0c;不停切换node版本&#xff0c;也难免有些繁琐。此时&#xf…

HCIP学习--BGP3

目录 前置内容 BGP下一跳的修改问题 BGP的属性 配置 PrefVal权重属性 负载分担 LocPrf 负载分担 NextHop AS-PATH Ogn 配置 MED 配置 BGP选路规则 BGP的社团属性 配置及解释 前置内容 HCIP学习--BGP1_板栗妖怪的博客-CSDN博客 HCIP学习--BGP2_板栗妖怪的博客…

【LVS-NAT配置】

配置 node1&#xff1a;128&#xff08;客户端&#xff09; node2&#xff1a;135&#xff08;调度器&#xff09; RS&#xff1a; node3&#xff1a;130 node4&#xff1a;132 node2添加网络适配器&#xff08;仅主机模式&#xff09; [rootnode2 ~]# nmtui[rootnode2 ~]#…

利用 Splashtop Enterprise 改善公司的网络安全

在我们日益数字化的世界中&#xff0c;对强有力的网络安全措施的需求从未像现在这样迫切。随着组织扩大其数字足迹并采用远程办公解决方案&#xff0c;他们面临着一系列不断变化的挑战。 威胁行为者不断寻找利用漏洞的新方法&#xff0c;这使得企业保持领先地位至关重要。俗话…

Spring Boot实现第一次启动时自动初始化数据库流程详解

随着互联网的发展项目中的业务功能越来越复杂&#xff0c;有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务&#xff0c;但是远程服务的健壮性和网络稳定性都是不可控因素。 在测试阶段可能没有什么异常情况&#xff0c;但上线后可能会出…

HCIP BGP小综合

BGP小综合 AS配置AS1AS2 中的小自治系统64512AS2 中的小自治系统64513AS3 测试 首先该实验分成三个AS&#xff0c;AS2里面有联邦&#xff0c;所以配置顺序 要先将IBGP通&#xff0c;然后配置AS1,AS3和联邦 AS配置 AS1 R1 # bgp 1router-id 1.1.1.1peer 12.1.1.2 as-number …

计算机设计大赛国赛一等奖项目分享——基于多端融合的化工安全生产监管可视化系统

文章目录 一、计算机设计大赛国赛一等奖二、项目背景三、项目简介四、系统架构五、系统功能结构六、项目特色&#xff08;1&#xff09;多端融合&#xff08;2&#xff09;数据可视化&#xff08;3&#xff09;计算机视觉&#xff08;目标检测&#xff09; 七、系统界面设计&am…

MySQL8安装和删除教程 保姆级(Windows)

下载 官网: mysql官网点击Downloads->MySQL Community(GPL) Downloads->MySQL Community Server(或者点击MySQL installer for Windows) Windows下有两种安装方式 在线安装 一般带有 web字样 这个需要联网离线安装 一般没有web字样 安装 下载好之后,版本号可以不一样&…