前言:
上一篇文章中我们讲解了:在第一次安装启动应用之后,跳过用户引导页进入首页。我们使用的是固定的等待sleep,和固定坐标的swipe语句,以及重复swipe语句达到翻页至最后一页。这一章我们讲:
- 等待引导页出现后开始互动操作
- 动态的获取屏幕内坐标,但是滑动
- 使用循环语句滑动页面直至最后一页
课程内容:
首先我们上图我们今天这节的用例:
知识点讲解
- 第一行:上两节已经重点讲过,打开应用(如果未安装,就会自动安装之后打开应用)
- 第二行:Wait Until Element Is Visible(可以使用id,xpath,css或者name的值)关键字。这一句是指我们等待引导页出现,而怎么判断引导页出现呢?我们可以查看引导页上的元素(与开启启动图不一样的是,引导页中有个控件“跳过”),所以我们选择等待“跳过”按钮的出现,就代表进入了引导页。 备注:id就是UI Automator Viever中的resource-id;name就是指UI Automator Viever中text的值
- 引导页图片:
- 第三、四行:接下来我们需要滑动切换引导页,先讲一下我们的思路,滑动需要获取滑动区域的坐标,我们滑动的区域毫无疑问是整张引导图内,我们可以使用 get element location获取引导页图片的左上角坐标(x与y值),使用get element size 获取引导页图片的大小(width和height值),我们用字典的方式存放返回的数据,这样我们就能使用dict的key值去访问数据了。通过计算你就能知道上图中四个角的坐标了。备注:我们用字典的方式存放返回的数据,这样我们就能使用dict的key值去访问数据了。我们可以手动的滑动看看,滑动至下一页,需要保证横向滑动的跨度比较大。
- 第五、六、七行,我们的值都是要通过数学运算得来的,所以我们要用到关键字:Evaluate(用法如第五、六、七行)
- 第五行:我们的滑动时从右向左划,我们计算滑动开始的点的x坐标:&{loc}[x]+&{size}[width]-100(&{loc}[x]+&{size}[width]左上角的x的值加上width就是引导图最右侧的x值,再减去100是因为我们所有的滑动最好不要贴边去操作,都要偏移一点)
- 第六行:计算滑动开始的点的y坐标-->(&{loc}[y]+&{size}[height])/2(我们选择了引导图上下中间的y值)
- 第七行:从右向左移动,我们选择临近最左侧线的点-->&{loc}[x]+100
- 引导页最后一页:
- 第八、九、十、十一行:使用循环语句,思路是:滑动页面直到页面出现了控件“立即体验”(最后一页和所有的引导页不一样的地方在于,有控件“立即体验”,如上图)
- 第八行:for语句的使用,循环执行for下面语句的次数。(暂时没有想好怎么动态的去判断循环的次数,所以比较笨的选择循环10086次,大家有好的方法可以联系我。)
- 第九行:判断页面是否存在控件“立即体验”,如果页面有此控件${i}返回字符串:PASS;如果页面没有此控件${i}返回字符串值:Fail,如下图:
- 第九行执行结果图:
- 第十行:如果页面存在控件“立即体验”,则退出循环往下执行第十二行点击操作。(如果不满足条件,就往下执行for内部语句第十一行)
- 第十一行:从右向左滑动至下一个引导页
- 如何判断一个for语句结束? for里面的语句第一列要置空
- 第十二行:点击控件“立即体验”,进入首页
备注:为什么我点击立即体验这个控件不适用click button呢?你们可以尝试一样将我的click element 改为click button,会报错,所以大部分我喜欢适用click element:
来源:CSDN
作者:喳喳学测试
链接:https://blog.csdn.net/zengting927/article/details/77649504