答疑第四期 | 使用Airtest最常见的8大问题

简介: 答疑第四期 | 使用Airtest最常见的8大问题

前言



本期答疑目录


  • 1.如何取消脚本执行过程刷新的大量log信息
  • 2.IDE自带的查看应用包名的功能
  • 3.IDE的脚本编辑和log查看窗口显示空白
  • 4.webdriverAgentRunner报NSInaliArgumentException
  • 5.Airtest版本为1.1.3,部分手机出现录屏失败
  • 6.输入密码时Airtest不显示密码键盘
  • 7.如何模拟鼠标右键
  • 8.局部截图/区域截图


1.如何取消脚本执行过程刷新的大量log信息



在脚本运行的时候, Airtest 默认会刷新很多log信息,如下图所示:



如果你不想这些log信息干扰你提取有效的报错信息时,你可以在脚本代码开头加上log级别的设定:


# -*- encoding=utf8 -*-
__author__ = "user"
import logging
logger = logging.getLogger("airtest")
logger.setLevel(logging.ERROR)
from airtest.core.api import *
auto_setup(__file__)
复制代码


这样运行时只会在初始化手机时会有少量log输出,初始化完毕后就能够对logger进行过滤了。


2.IDE自带的查看应用包名的功能



大家经常会使用 start_app("包名") 来启动待测应用,而这个包名需要我们用命令去获取。


实际上,我们还可以通过IDE自带的一个 Android助手 ,帮助我们快速获取已连接设备上的应用包名。


连接上待测的安卓设备以后,点击右上角的手机助手,然后再点击 打开Android助手 选项:



之后我们就可以在弹出的窗口中查看到设备上的应用包名:



另外,我们还可以在设备上打开想要获取包名的应用,之后点击安卓助手右下方的 refresh 按钮,即可看到当前打开应用的 packageactivity



3.IDE的脚本编辑和log查看窗口显示空白



有些同学在启动IDE后,发现不能够看到脚本编辑窗口和log查看窗口中的文字,就像下图这样:



包含启动后闪退在内,这些问题大概率都是由显卡兼容性问题导致的。我们可以通过双击文件夹中的 兼容性模式启动.bat 脚本就能够正常启动AirtestIDE。


并且,在1.2.3版本的IDE中,我们在设置中新增了一个选项:



默认情况下会选择 default 模式。如果启动有问题的用户,可以尝试选中下拉菜单中的另外三个选项,并且重启AirtestIDE,查看接下来是否能正常显示脚本编辑窗口和log查看窗口。


如果能够生效,未来启动AirtestIDE时都将会以这个配置项来启动,无需每次都手工双击 兼容性模式启动.bat 脚本来启动AirtestIDE了。


4.webdriverAgentRunner报NSInaliArgumentException



出现这个错误的原因大多是使用了11.4.1版本的xcode:2



目前(2020-05-12)这个版本的xcode还不兼容,根据最近一次的更新,xcode和iOS的支持情况如下,只要将xcode换成兼容版本即可:



5.Airtest版本为1.1.3,部分手机出现录屏失败



使用1.1.3版本的Airtest,部分手机用 --recording 参数对设备进行录屏操作时,会出现如下报错:



这些手机需要点开安装好的 Yosemite.apk ,然后给一个开启录屏的权限。(1.1.3版本的录屏操作由 Yosemite 完成)。


6.输入密码时Airtest不显示密码键盘



有同学反馈,脚本运行到输入密码时,手机弹出了安全键盘,但是在Airtest中却不显示这个安全键盘,这是为什么?


其实这个是正常现象,Airtest不会录制有安全键盘的画面,但是各种输入操作还是正常进行的。


7.如何模拟鼠标右键



pywinauto.mouse 这个模块给我们提供了各种模拟鼠标操作的方法,例如大家常问的右键操作,就可以使用这个模块的 right_click() 方法:


首先我们需要获取当前连接的窗口,然后再调用 right_click() 方法实施鼠标右键点击操作:


from airtest.core.api import *
auto_setup(__file__)
# 获取当前连接的窗口
dev = device()
# 拿到鼠标,并模拟鼠标的右键点击操作
dev.mouse.right_click(coords=(1920,100))
复制代码


更多模拟鼠标或者键盘的操作,可以参考我们往期的推文: “如何用python模拟鼠标和键盘的操作” 。


8.局部截图/区域截图



局部截图或者说按坐标截图是大家经常会问到的问题,Airtest提供了 crop_image(img, rect) 方法可以帮助我们实现局部截图:



举个例子,我们想要截取手机屏幕中被红框圈中位置的截图:



我们可以这么实现:


# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
# crop_image()方法在airtest.aircv中,需要引入
from airtest.aircv import *
auto_setup(__file__)
screen = G.DEVICE.snapshot()
# 局部截图
screen = aircv.crop_image(screen,(0,160,1067,551))
# 保存局部截图到log文件夹中
try_log_screen(screen)
复制代码


结果如图:



Airtest官网:airtest.netease.com/

Airtest教程官网:airtest.doc.io.netease.com/

搭建企业私有云服务:airlab.163.com/b2b


相关文章
|
7月前
基于airtest的全民旺财辅助
基于airtest的全民旺财辅助
62 1
|
7月前
|
存储 Web App开发 前端开发
Airtest-Selenium实操小课③:下载可爱猫猫图片
Airtest-Selenium实操小课③:下载可爱猫猫图片
|
7月前
|
人工智能 前端开发 机器人
【杂谈】扣子(Coze) 初体验
扣子(Coze)是什么 官方原文如下: 扣子(coze.cn)是一款用来开发新一代 AI Chat Bot 的应用编辑平台,无论你是否有编程基础,都可以通过这个平台来快速创建各种类型的 Chat Bot,并将其发布到各类社交平台和通讯软件上。 我们可以理解为一个聊天🤖️,可以在其他平台上发布。那就让我们快速开始吧
950 0
|
7月前
|
Python
使用Python开发连连看游戏的技术指南
使用Python开发连连看游戏的技术指南
158 0
|
7月前
|
数据可视化 Linux 开发工具
猿如意中的【blender】工具详情介绍
猿如意中的【blender】工具详情介绍
|
存储 人工智能 算法
Tkinter模块GUI界面化编程实战(七)——人机对战五子棋(含超详解及完整源码、完整程序免费下载链接)
Tkinter模块GUI界面化编程实战(七)——人机对战五子棋(含超详解及完整源码、完整程序免费下载链接)
216 0
Tkinter模块GUI界面化编程实战(七)——人机对战五子棋(含超详解及完整源码、完整程序免费下载链接)
|
编解码 Python
Python黑科技04-练手小项目-美轮美奂的电脑屏保
很多时候我们总是低估了自己,对自己不够狠,从而错过了遇到一个更加优秀的自己。逼自己一把,很多事并不需要多高的智商,仅仅需要你的一份坚持,一个认真的态度,一颗迎难而上的决心。 不去做,就永远不会有收获;不相信,就永远不会有成功;不可能,就永远停留现在。未来是靠把握机会和努力奋斗的,相信永远比怀疑多一次成功的机会!
Python黑科技04-练手小项目-美轮美奂的电脑屏保
|
Android开发 iOS开发 计算机视觉
答疑第三期 | 使用Airtest最常见的 8 大问题
答疑第三期 | 使用Airtest最常见的 8 大问题
489 0
|
IDE 开发工具 Android开发
答疑第二期 | 使用Airtest最常见问题8大问题
答疑第二期 | 使用Airtest最常见问题8大问题
509 0
|
编解码 移动开发 IDE
Airtest 快问快答,你们想问的这里都有!(第 1 期)
Airtest 快问快答,你们想问的这里都有!(第 1 期)
705 0

热门文章

最新文章