Airtest手机APP自动化操作微信
创始人
2024-02-27 14:21:10
0

感觉Appium太垃圾了,于是顺手学了下Airtest

  1. 安装并解压
    官网,有很显眼的下载按钮
    下载完zip文件后进行解压

  2. 启动自带AirtestIDE.exe
    在这里插入图片描述
    不想登录的可以跳过
    在这里插入图片描述
    因为提前通过数据线连接了手机和电脑了,所以一进去就显示已经连接到手机设备了
    当然启动完再用USB线连上也是没问题的
    在这里插入图片描述
    如果是之后插上手机的话,记得刷新
    在这里插入图片描述
    双击这个框,会开始连接,等待几秒出现手机界面,与真机是同步的
    在这里插入图片描述
    在这里插入图片描述
    对于某些手机,例如小米,在第一次使用Airtest时,请注意手机上将会弹出提示,询问你是否允许安装App,此时需要点击允许按钮。

  3. 打开微信

    # -*- encoding=utf8 -*-
    __author__ = "lyy"from airtest.core.api import *auto_setup(__file__)
    start_app("com.tencent.mm")
    

    在这里插入图片描述

  4. 定位
    在这里插入图片描述
    选完android会弹出这玩意,点yes,手机上也同意安装该应用
    在这里插入图片描述
    点完上面那个小标志后,光标移到那个手机界面上,就有组件详情了
    在这里插入图片描述

    在这里插入图片描述
    所以点击红点就写好了

    poco(name="com.tencent.mm:id/kmv").click()
    
  5. 在pycharm中运行这段代码
    安装相关依赖,东西有点多,要等一会
    pip install pocoui -i https://pypi.tuna.tsinghua.edu.cn/simple
    然后就可以直接把AirtestIDE里的代码直接粘贴过去了
    但是代码运行起来又要下东西,能咋办,下呗。。。

  6. 成果

    # -*- encoding=utf8 -*-
    __author__ = "lyy"from airtest.core.api import *
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    import datetimepoco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)def response(text):if text == "现在什么时候了":return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")elif text == "感觉Airtest怎么样":return "只要安装exe就可以使用,很舒适,迁移到python上也只要pip装对应的包。速度也较快,但是IDE和接口的bug挺多,输入文本的API做的不太好,而且网上相关博客很少,社区不活跃"elif text == "你这个脚本的效果是什么":return "检测微信主页的可视范围内(不下滑时)的所有有未读信息的好友,判断他们的文本并进行回复"elif text == "你是谁":return "刘宇阳"elif text == "为什么能回复自己发的消息":return "因为左右两边的聊天框是同一类组件,区分起来有点麻烦;不区分也方便自己测试"else:return Noneif __name__ == '__main__':auto_setup(__file__)# 启动微信start_app("com.tencent.mm")while True:if poco(name="com.tencent.mm:id/kmv").exists():# 点击第一个红点poco(name="com.tencent.mm:id/kmv").click()if poco(name="com.tencent.mm:id/b4b").exists():target_msg = poco(name="com.tencent.mm:id/b4b")[-1].get_text()resp = response(target_msg)if resp != None:# 输入内容poco(resourceId="com.tencent.mm:id/kii").click()# 使用Airtest的专用输入法Yosemite# 异常捕获解决第一次打开Yosemite输入法报错try:text(resp, enter=False)except:text(resp, enter=False)# 点击发送poco(resourceId="com.tencent.mm:id/b8k").click()# 返回poco(resourceId="com.tencent.mm:id/yn").click()
    

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...