当前位置:   article > 正文

Airtest手机APP自动化--操作微信(小米11)_airtest链接小米手机

airtest链接小米手机

感觉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")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

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

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

    poco(name="com.tencent.mm:id/kmv").click()
    
    • 1
  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")
        print("开始监听")
        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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/276315
推荐阅读
相关标签
  

闽ICP备14008679号