令人抓马的Airtest报错:int object is not iterable

给大家分享一个非常小但很容易让人忽视的Airtest问题,有天在写一个touch脚本的时候,因为横竖坐标,是废了很大劲拿到的,并且是通过变量的方式传给 touch 接口,就类似这样:

x = int(pox_x)
y = int(pos_y)touch(x,y)

看起来非常简单,结果运行起来就一直报错:

  touch(x,y)File "airtest\utils\logwraper.py", line 124, in wrapperFile "airtest\core\api.py", line 368, in touchFile "airtest\core\android\android.py", line 527, in touchFile "airtest\core\android\touch_methods\touch_proxy.py", line 130, in touchFile "airtest\core\android\android.py", line 933, in _touch_point_by_orientation
TypeError: 'int' object is not iterable

一直都看不出来这个touch脚本有什么问题,后面突然灵光乍现,想起来 touch 接口的参数是一个坐标,这里传了错误的参数进去,只要改成:

x = int(pox_x)
y = int(pos_y)touch((x,y))

即可正常运行。其实这个问题在新手群里也见过好几次了,但是当自己也不小心写成这样子的时候,还真的抓马了一会。

类似的问题还有写poco脚本时,把poco(text="登录").click()写成了poco(text="登陆").click(),然后运行一直报错找不到控件,好一会都想不明白为什么报错了,结果是小小的错别字问题。

今天小编的抓马经验就分享到这里,不知道大家还有什么抓马的写脚本经验,快来评论区分享给我们~