Airtest手机APP自动化操作微信

news2025/2/26 6:13:06

感觉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 datetime
    
    poco = 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 None
    
    
    if __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()
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端css元素yi

996技术站 - 活在未来 | KingSun966技术站,极客带你看世界!https://www.996station.com程序员开发指南Descriptionhttps://guide.996station.com css元素溢出 当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式&#x…

[附源码]SSM计算机毕业设计小锅米线点餐管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Redis——》数据类型:bitmap

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 Redis——》数据类型:bitmap一、底层结构二、最大长度三、操作示…

IPv6进阶:IPv6 过渡技术之 6to4 自动隧道

实验拓扑 R1-R3-R2之间的网络为IPv4公网;PC1及PC2处于IPv6孤岛。 实验需求 R1及R2为IPv6/IPv4双栈设备;在R1及R2上部署6to4自动隧道使得PC1及PC2能够互相访问。 实验步骤及配置 Internet Router的配置如下 [R3] interface GigabitEthernet0/0/0 [R3…

gan与dcgan训练自己的数据集

gan https://blog.csdn.net/weixin_50113231/article/details/122959899 dcgan 源码地址:https://github.com/carpedm20/DCGAN-tensorflow 安装教程 环境配置 将代码克隆到本地后首先按照官网所需依赖环境进行配置 由于该文章比较早所以python与tensorflow最好按…

做好QA质量管理,4大注意事项和技巧。

1、QA检查单:全过程质量管理体系。 为了做好过程质量管理,QA检查单需要按照检查类型、检查阶段、实践域、检查对象、检查项进行层层划分,构建了全过程质量管理体系。 如QA检查单按照检查阶段划分为:需求分析、系统设计、系统实现、…

5G无线技术基础自学系列 | SU-MIMO原理

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 通过多天线技术支持单用户在上下行数据…

SSM考试题库管理系统毕业设计源码069043

SSM考试题库管理系统 摘 要 随着计算机办公自动化程度的不断提高,开发各种数据库管理应用软件用于各种工作中能有效地提高工作效率,节省时间,能使学校的教学工作上一个新的台阶。传统的人工命题形成试卷,往往会出现大量的重复劳动…

java 串口通讯获取检验码

/*** 获取校验码* crc16 X16x15x21* 16进制报文是 02 03 00 00 00 40 CRC16* 传输的str:“020300000040”* 结果:4409* param str* return*/ public static String getCRC(String str) {byte[] bytes NumberUtils.hexStringToBytes(str);int CRC 0x000…

【Spring Boot】Spring Boot 统一功能处理

文章目录Spring拦截器为何需要Spring拦截器?自定义拦截器加入系统配置并配置拦截规则验证登陆拦截器添加统一访问前缀验证统一前缀是否添加成功统一异常处理统一数据返回格式Spring拦截器 为何需要Spring拦截器? 在之前Servlet开发中,对登陆…

深入理解java虚拟机:虚拟机字节码执行引擎(2)

文章目录3. 方法调用3.1 解析3.2 分派接着深入理解java虚拟机:虚拟机字节码执行引擎(1),我们继续往下看: 3. 方法调用 方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本&…

【LeetCode每日一题】——771.宝石与石头

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 字符串 二【题目难度】 简单 三【题目编号】 771.宝石与石头 四【题目描述】 给你一个字符串…

配电网电压调节及通信联系研究(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清…

三年城市NOH落地100城,毫末智行内部信剑指2025

11月29日,毫末智行董事长张凯、CEO顾维灏联合发布《毫末智行三周岁:三年磨一剑 利刃开新篇》的内部信,提到毫末愿景及战略目标:“让机器智能移动,给生活更多美好。”未来成长为一家产品矩阵覆盖全无人驾驶、机器人等多…

[附源码]Python计算机毕业设计Django“科教兴国”支教门户网站

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【毕业设计】26-基于单片机心跳体温血压系统仿真设计(原理图+仿真+演示视频+论文)

【毕业设计】基于单片机心跳体温血压系统仿真设计(原理图仿真演示视频论文) 文章目录【毕业设计】基于单片机心跳体温血压系统仿真设计(原理图仿真演示视频论文)任务书设计说明书摘要设计说明书及设计文件任务书 以单片机为控制核…

DPDK helloworld示例程序

目录 helloworld源代码 helloword编译 helloworld代码解析 DPDK的helloworld示例程序&#xff0c;用以示例DPDK应用程序的编写和使用。 helloworld源代码 helloworld代码构成&#xff1a; /* 省略系统头文件*//* DPDK相关的rte头文件 */ #include <rte_memory.h>…

springboot 集成JWT实现token验证

JWT介绍 是一种开放标准 &#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且独立的方式&#xff0c;用于将信息作为 JSON 对象在各方之间安全地传输。该信息可以进行验证和信任&#xff0c;因为它是经过数字签名的。JWT 可以使用密钥&#xff08;使用 HMAC 算法…

拾忆书苑(图书商城系统)网站的设计与实现(html;DIV+CSS; Bootstrap; Dreamweaver; Photoshop)

目 录 一、绪论 1 &#xff08;一&#xff09;课题研究背景 1 &#xff08;二&#xff09;课题研究目的及意义 1 二、相关技术与工具介绍 1 &#xff08;一&#xff09;Dreamweaver开发技术 1 &#xff08;二&#xff09;Adobe Photoshop 1 三、拾忆书店网站的设计与分析 2 &am…

某村庄供水工程设计(设计报告+cad图纸+预算工程量清单)

目 录 工程特性表 1 1 综合说明 3 1.1 工程背景 3 1.2 设计依据 3 1.3 工程建设的必要性与可行性 3 1.4 供水范围、规模及水源选择 4 1.5 工程总体布置 4 1.6 工程设计 4 1.7 工程施工 5 1.8 工程管理 5 1.9 预算 5 2 项目区概况及项目建设的必要性 6 2.1 项目区自然概况 6 2.2…