Airtest踩坑之路

前言

由于是首次接触自动化测试,在学习和使用的过程中,难免会遇到各种各样的问题,所以这篇文章是总结踩到的各种坑,保证后面再次遇到时可以快速解决~

一、索引越界error
索引越界的错误

上图就是索引越界报的错,从error log中可以看到,报错的这行脚本。。emmm,非常长!!!都是小程序没有ID的错!!!


报错的那行脚本

这行脚本是通过录制得到的,可是在运行时却报错,经过查询,应该是webkit引擎的bug,此处不再深究。

言归正传,这行脚本既然报了indexError,证明某个索引超出了越界,那么就来找出哪里错误。众所周知,在编程中开始不是1,而是0,那么就能排除该行中索引为0的元素

有索引的已经标记出来

排除了0之后,还有三个索引,分别是1、6、1,那么一个一个来试,从第一个("android.webkit.WebView")[1]开始,将1改为0后运行,成功了!那么证明是该元素越界了。

在后面的脚本录制中,也会遇到同样的问题,同样是("android.webkit.WebView")[1]越界,所以后续着重关注该元素即可

二、定位的元素文字有误

在订单详情页中,定位“立即支付”,录制的脚本如下:

录制了有问题的脚本

从脚本代码来看,这明显是无法运行的,该怎么办呢?
此处可以用正则表达式来解决,从图上可看出,“立即支付”前后都有回车符,所以可以改为poco(text="^\s*立即支付\s*$").click()(正则表达式教程可以看这篇文章),尝试运行一下
报了找不到文字的错误

此处要说明一下,text是精准定位,即元素的文字是什么就是什么,哪怕差一个字符,都会报错

所以这里要把text改为textMatches,即poco(textMatches="^\s*立即支付\s*$").click(),再次运行

运行成功了

三、同一页面有2个以上相同元素或控件的处理

在同一个页面中,有2个以上相同的元素或控件,可以用"索引"来解决该问题。

购物车页面

在该页面中,“+”和“-”各自有两个元素,那么怎么定位第一个或者第二个呢?此处可以用索引来解决。
定位第一个的话,可以编写为poco(text="-")[0].click(),poco(text="-")[0].click(),即不设置索引,或者索引设置为[0]的话,都是定位第一个“-”。
想定位第二个的话,可以把索引设置为[1],即poco(text="-")[1].click()

你可能感兴趣的:(Airtest踩坑之路)