玩转RobotFramework下的Web自动化测试(一)——获取页面table中的行数

使用RobotFramework做web前端的自动化测试也有一段时间了,从一个小小白到现在的小白的过程说起来还挺艰辛的。网上相关的资源其实还是蛮少的,好在有道长虫师这样的大神存在以及RobotFramework交流群里的伙伴们,在不(厚)厌(着)其(脸)烦(皮)的问来问去中也算成长了许多。工作中还是碰到了不少细小的问题,虽然看起来都不是什么大事儿,但是解决起来还是挺费时费力的。一直想着把这些小问题总结一下,分享给大家,顺便看看有没有什么更好的解决方案

从今天起我会将工作中实际遇到的问题及解决方案分享出来,算不上什么指导,大家就当是一个小知识点或者是一个小tip看就好了。

获取页面table中的记录数
目的:获取页面table中的所有的记录数,比如有10页,每页可以显示10条记录,第10页显示了5条,那么一共就是95条记录。获取后同数据库进行对比或是同页面中的“共找到xx条记录”的字样进行对比等等。
直接上脚本,功能的实现涉及到两个自定义的关键字:getTableLineNumber(一个return值totalNumber)、getTableLineNumberOthers(一个入参一个返回值都是totalNumber)
玩转RobotFramework下的Web自动化测试(一)——获取页面table中的行数_第1张图片
玩转RobotFramework下的Web自动化测试(一)——获取页面table中的行数_第2张图片

先说下思路:
1、获取第一页的记录数、并判断是否有“下一页”
2、如果有下一页则调用getTableLineNumberOthers关键字来获取后面所有页的记录数,获取的脚本同获取第一页的记录数脚本一样
     如果没有下一页或根本没有记录被找到,则直接返回记录数量(也可能没有记录就返回个0)

逐行讲解一下:
getTableLineNumber
Line1、注释,要养成好习惯哦
Line2、执行这句js来获取第一页table下面的tr的数量。(使用这句js已经是关键字第二版的事情了,第一版的时候方法笨的要死,这还要感谢我的一位开发小伙伴呢)
var len = $(".m_table>tbody").find("tr").length;alert(len);
其中的.m_table是table标签的class属性,当然你也可以使用其他的id、name什么的
Line
3、将获取数量的数量-1,table中都是有列头的嘛
Line4、执行上面那句js的时候页面会有一个alert弹出来,就是alert(len)这个,不知道为什么去掉就获取不出数量。。。所以只好这样了
Line5、设置一个变量还保存所有页的记录数
Line6、把第一页的记录数赋值给所有页的变量
Line7、注释
Line8、获取页码的文本,like this:
玩转RobotFramework下的Web自动化测试(一)——获取页面table中的行数_第3张图片
Line9、判断文本里面是否包含“下一页”这3个字
Line10、注释
Line11、进行判断,如果有“下一页”则调用关键字来获取后面的记录数,getTableLineNumberOthers关键字需要一个传入的参数 ${totalNumber}
Line12、注释(如果没有下一页则将第一页的个数重新赋值给totalNumber。重新赋值的含义为如果上面执行结果为否,则会将None赋值给${totalNumber})
Line13、判断如果上面的 getTableLineNumberOthers没有执行(说明没有下一页了)则把第一页的记录数赋值给total,否则把 getTableLineNumberOthers关键字的返回值赋值给totalNumber

getTableLineNumberOthers
同上,只是加了一个退出条件,如果没有“下一页”了就退出循环并返回totalNumber

为啥每页都取值?每页包含的记录不应该是一样的吗?
当然每页的记录数都是一样的了,这样写更准确一些吧,顺便每个按钮都点点(黑盒测习惯了,看见按钮就想点)

再说一下:这里只是提供一个思路,也许看官的前端代码节点不是这样描述的,思路总是差不多的。





你可能感兴趣的:(玩转RobotFramework下的Web自动化测试(一)——获取页面table中的行数)