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

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


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

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

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

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

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

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

解决问题:

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

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

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

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

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

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

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

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

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

 

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

 

 

posted @ 2017-08-25 10:53  马小兔  阅读(899)  评论(0编辑  收藏  举报