Robot FrameWork UI自动化脚本稳定性与原生关键字

在执行robotframework  的用例时,经常会出现稳定性差的问题。用例执行第一次成功,执行第二次就可能报错。自己对这个问题挠头很久,不知道怎么解决。今天在浏览网页的时候发现了一个不错的帖子,好像能够解决这个稳定性的问题。然后就把贴子搬了过来,为自己做一下备份(看了人家的帖子后,发现原来还是自己对robotframework的关键字用的不够熟悉造成的?(????ω????)?)。

众所周知,在UI自动化在运行时,时常会收到来自各方的挑战;开发会说,你的自动化不稳定,又误报了;测试会说,这个框架不行,太多误报,我要花大量的时间去复查是否是BUG!

出现运行不稳定的情况包含:

一、         页面加载时快时慢,导致要操作的元素时隐时现!

二、         过多的异步加载,虽然控件加载完成了,但是值的填充正在进行!

三、         网格列表无法判断,是否加载完成,因为框架加载和数据加载要全部完成,才能操   作!否则会webdriver异常;

四、         Frame不退出为什么也报错!

解决问题:

第一个问题:在操作元素之前,需要先判断元素是否可见,Wait Until Element Is Visible

第二个问题:2个解决方案;

l Wait Until Keyword Succeeds 等待后面的关键字执行成功,可设置超时时间和重试间隔时间

l 如果你能确定,是否个元素值,加载最晚,就可以使用“第一个问题”的解决办法;

第三个问题:通常会对网格进行选中、双击、单击、验证等处理;如果网格数据未加载完成,webdriver会报错,以下2种解决办法;

l 在数据加载时,开发会实现loading效果,我们可以用Js调用开发的Loading判断,通过返回值,来确定网格列表加载完成没有;

l 以网格中某行为锚点,判断这个行是否可见了,如果可见,说明网格基本加载成功,可以使用“第一个问题”的解决办法;

第四个问题:点击一个按钮,出现一个弹出界面,通常实现是Div里面嵌套一个Iframe;有人会习惯,关闭这个弹出界面后,就直接操作父页面了;

研究发现,在某些浏览器的某些版本下,select Frame 后不退出,直接操作父页面,是OK的;但同时也发现,在一些版本下,即使Frame消亡,不退出frame,webdriver也会报错;所以还是老实的遵守规则吧!

原贴链接:https://zhuanlan.zhihu.com/p/21567663

时间: 2024-08-01 17:08:43

Robot FrameWork UI自动化脚本稳定性与原生关键字的相关文章

Robot Framework数据库自动化

9   Robot Framework数据库自动化 9.1  Robot Framework数据库自动化环境搭建 9.1.1 安装的准备 1)从网盘下载 Robotframework-Database-Library 文件 网盘下载地址:http://pan.baidu.com/s/1skZ3oDn 官网下载地址:https://pypi.python.org/pypi/robotframework-databaselibrary/0.6 2)解压 压缩包. 9.1.2 安装Database-L

Robot Framework 第一个脚本

robot Framework环境搭建好之后先来一个简单的脚本跑一下 一.新建项目 二.新建测试套件  三.创建测试用例 四.导入Selenium2Library库 因为RF框架编写基于web 的测试用例,所以,我们需要selenium 的库支持.所以,我们在使用的过程中需要加载selenium2library库. 在"测试套件"的Edit标签页,点击"Library"按钮,弹出输入框,Name输入:Selenium2Library ,点击OK 完.如果导入的库显示

如何用Airtest编写UI自动化脚本

前言 游戏并不像app一样直接把渲染树节点暴露出来,这就造成游戏UI自动化在元素定位上的不方便性,不过依赖airtest的图片识别,我们可以直接跳过元素检查,以图片对比的形式进行自动化,虽然效率可能会低一些,但是至少也是自动化了. 脚本文件的创建 首先需要创建脚本文件,airtest提供了两种格式的文件——.air后缀和.py后缀: 虽说分开了两种,但两者之前其实差别不是很大(源码中.air文件最终也是较换成.py文件执行),具体选择哪个看个人喜好,个人比较喜欢纯python文件,因此创建的为.

Robot Framework自动化测试(五)--- 开发系统关键字

最近一直在用robot framework 做自动化测试项目,老实说对于习惯直接使用python的情况下,被框在这个工具里各种不爽,当然,使用工具的好处也很多,降低了使用成本与难度:当然,在享受工具带来便利的同时也会受制于工具.对于特定的需求,工具没提供相关的Library和关键字的时候,就只能放弃了. 还好robot framework提供了 Evaluate 关键字,对于Evaluate 关键字的使用等有时间再讲.当robot framework 不能解决需求,我是直接写个.py 程序,通过

robot framework之弹出窗口的处理关键字实战

1.1  弹出窗口的处理关键字 5.8.1 Alert Should Be Present关键字 按F5 查看Alert Should Be Present关键字的说明,如下图 Alert Should Be Present [ text= ] 用于验证警告框是否可用,参数text=  填写警告框提示语,也可以为空,如果参数“文本”是一个非空字符串,那么它也证实警报的消息等于“文本”.如果参数”文本”和实际的输出不一致,测试结果验证失败. 项目例子一:(验证成功例子) 代码实现: 备注:如果参数

Robot Framework自动化测试(二)---元素定位

说明: 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的API.比如笔者所处工作中,更多的是拿Robot framework来做数据库的接口测试,当然,需要先将相关的数据库包导入. 那么测试框架的本质是什么?个人觉得有以下几个方面. 1.比较 测试实质就是“比较”,在测试之前需要先写用例,假设经过各种操作之后会得到一个预期的结果,然后,在测试的过

Robot Framework自动化测试---元素定位

不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的API.比如笔者所处工作中,更多的是拿Robot framework来做数据库的接口测试,当然,需要先将相关的数据库包导入. 那么测试框架的本质是什么?个人觉得有以下几个方面. 1.比较 测试实质就是"比较",在测试之前需要先写用例,假设经过各种操作之后会得到一个预期的结果,然后,在测试的

UI自动化和selenium相关以及八大定位

一.UI自动化相关 1. UI自动化的本质(重点) 定位元素→操作元素→模拟页面操作→断言→测试报告 2. 适合UI自动化的场景 UI自动化的前提条件 (1)需求不能频繁变动 (2)UI稳定(UI自动化就是基于UI层面的,UI界面总变化无法开展) (3)项目周期长(UI自动化脚本编写和调试耗时,项目周期短纯手工更高效) (4)回归测试频繁(回归测试多就会有不断的主流程功能需要回归,自动化更高效) 适用场景 (1)冒烟测试 (2)主功能回归测试 3. UI自动化的原则 (1)一个case完成一个功

robot framework + selenium2——切换frame

select frame关键字: 接收一个参数locator,进行定位 open browser http://www.baidu.com chrome select frame id=fra ${list} get list items id=buy unselect frame //返回到最上层 log scource //打印页面html源代码 sleep 2 close browser ===================================================