Airtest踩坑之路

作者: linzero580 | 来源:发表于2019-11-12 17:36 被阅读0次
前言

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

一、索引越界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踩坑之路

    前言 由于是首次接触自动化测试,在学习和使用的过程中,难免会遇到各种各样的问题,所以这篇文章是总结踩到的各种坑,保...

  • 踩坑之路

    1,蓝牙搜索重点:android10以上搜索蓝牙需要开启定位 2,在 Android 6.0 中,我们取消了对 A...

  • thymeleaf 踩坑之路(一) 数字(number) 算法坑

    项目地址:https://github.com/yexuebm/utils thymeleaf 踩坑之路(一) 数...

  • 踩坑要趁早

    踩坑是一个好事,想要做成某些事有些坑是必经之路,踩过坑后通过反思学习,能力进步就会加快,有些父母总是怕吃不饱穿不暖...

  • webpack踩坑之路

    webpack+babel常用包和插件 没有设置repository和descriptionnpm WARN de...

  • Spark踩坑之路

    当以cluster/client运行spark时候,运行在如下所示,没有任何异常报错。 接下来就是找日志,发现卡在...

  • proguard 踩坑之路

    背景: 最近项目中引入了一个三方的库,然后在打包的时候发现一些build的一些task没有执行。原先release...

  • RecyclerView踩坑之路

    要使用RecyclerView需添加依赖:compile 'com.android.support:recycle...

  • small 踩坑之路

    新的项目使用了插件化开发,使用了small 在跳转其他插件的其他页面的时候,发现跳转找不到Activity。研究发...

  • kotlin踩坑之路

    工欲善其事必先利其器,首先要先配置开发环境和选好开发工具,我在这里使用的是Android Studio2.3.3和...

网友评论

    本文标题:Airtest踩坑之路

    本文链接:https://www.haomeiwen.com/subject/ptxqictx.html