用uiautomator2实现微信发消息自动化

目录

  • 介绍
    • 配置环境
    • uiautomator2常用api
  • 操作步骤
    • adb连接手机
    • 启动uiautomator2,安装atx-agent
    • 启动weditor
  • 微信发消息demo

介绍

Android UI自动化测试框架,提供了屏幕模拟点击的方法如点击、长按、输入、滑动等;

uiautomator2uiautomator

uiautomator2 的底层是基于uiautomator,uiautomator可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:

  • 只能使用Java语言;
  • 输出为jar包,需要上传到设备上运行。

2.0使用python语言,输出为APK,可以使用安卓服务和接口,开发和调试比1.0简单

配置环境

  1. 安装python:https://www.runoob.com/python/python-install.html
  2. adb:android debug bridge,安卓手机的调试工具
    安装参考: https://adbshell.com/downloads
  3. 安装uiautomator2:pip安装:pip3 install --pre -U uiautomator2
  4. weditor:比android sdk自带的UIAutomatorView工具更好用的元素定位工具,基于uiautomator2。
    安装命令:pip3 install --pre weditor

uiautomator2常用api

设备连接

  • d = u2.connect_usb(serial);
  • d = u2.connect(ip)

应用控制

  • 安装 d.app_install(‘apkurl’);
  • 打开 d.app_start(‘com.tencent.mm‘)等

元素控制

  • 单击坐标:d.click(x,y)
  • xpath单击:d.xpath().click()
  • resourceid单击:d(resourceid = “xxx”).click()
  • 双击:d.double_click()
  • 输入文本:d.send_keys(“ 122”, clear=True)

操作步骤

adb连接手机

两种连接方式:

  1. 使用usb:

     连接步骤:1. 手机打开开发者模式,允许usb调试(每种型号手机打开方式不一样,小米:连续点击版本号可以打开开发者模式,具体可以百度)2. usb连接电脑和手机3. 手机允许调试4. 执行adb devices命令查看连接设备5. 断开连接:断开usb
    
  2. 无线连接:

    连接步骤:
    1. 先用usb连接,保证手机和电脑在同一网段下
    2. 执行adb devices命令查看连接设备序列号
    3. 给设备指定一个端口号:adb –s [手机序列号] tcpip [端口号]
    4. 连接手机IP:adb connect [手机IP]:[端口号]
    5. 断开连接:adb disconnect [手机IP]:[端口号]
    

华为手机也可以无线连接:

	调整设备上开启usb调试的顺序:

在这里插入图片描述
序列号在这里插入图片描述

启动uiautomator2,安装atx-agent

Atx-agent:运行在手机后台的插件,获取ip地址,可通过手机版本号,调用不同的命令
启动命令:python3 -m uiautomator2 init
执行后手机上会提示下载atx-agent,点击下载(uiautomator2不稳定,需要atx-agent保活)
在这里插入图片描述

启动weditor

启动weditor命令:python3 -m weditor
在这里插入图片描述

启动后命令行窗口不要关,会在浏览器打开weditor窗口

  • 系统选择:ios暂不使用;
  • 输入ip或手机序列号,点击connect连接,出现绿色小树表示连接成功;
  • 点击dump hierarchy 刷新,同步手机页面,选择实时,可以自动同步手机页面状态;
  • 点击页面元素,可以生成xpath代码,也可以使用坐标或其他定位方式;
  • 下面分别是开关机,主页面,返回,点击如手机操作;
  • 在线调试代码,点击页面生成代码,加进逻辑后,可以在线执行,查看执行效果,进行修改,可以直接复制进idea里使用;
    在这里插入图片描述

微信发消息demo

python-demo:搜索群名后进群发文本消息(因为没有判断页面元素是否存在的逻辑,初始页面需停留在聊天页)

wechat_dict = d.app_info('com.tencent.mm')#获取微信应用信息
version = wechat_dict['versionName']#获取版本号
if version =='7.0.22':d.xpath('//*[@resource-id="com.tencent.mm:id/f8y"]').click()#搜索按钮d.xpath('//*[@resource-id="com.tencent.mm:id/dn7"]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]').click()#搜索输入框d.send_keys("测试编外群", clear=True)#输入群名time.sleep(2)d.xpath('//*[@resource-id="com.tencent.mm:id/gbv"]').click()#点击第一个群# d.send_keys("测试编外群", clear=True)time.sleep(2)d.xpath('//*[@resource-id="com.tencent.mm:id/g78"]').click()#聊天页面输入框d.set_fastinput_ime(True)d.send_keys("橙子好吃d", clear=True)#输入消息# d.send_keys("橙子好吃", clear=True)d.xpath('//*[@resource-id="com.tencent.mm:id/anv"]').click()#点击发送

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android实现实时视频聊天功能|源码 Demo 分享

疫情期间,很多线下活动转为线上举行,实时音视频的需求剧增,在视频会议,在线教育,电商购物等众多场景成了“生活新常态”。 本文将教你如何通过即构ZEGO 音视频 SDK 在Android端搭建实时视频通话能力。即构音视频SDK提…

写一个 ChatGPT token 编解码 Node.js 服务【含源码】

背景介绍 最近做了一个 ChatGPT 相关的项目 - Ai 玩伴,这是一个微信小程序。Ai 玩伴是基于OpenAI 的 GPT-3.5 语言模型,搭建富有性格特色的「Ai 玩伴」智能聊天机器人。它可以陪你聊天、陪你玩、为你解答各种问题,具体功能可以微信中搜索【A…

解决captcha验证码无法显示的问题

新装的Linux服务器,安装好了JDK1.6,却未设置JAVA_HOME,想不到这为此问题埋下了诱因。 在旧服务器上captcha的验证码没有任何问题。 问题描述: 1.跟踪log,发现servlet调用已经进来了,而且生成验证码的代码也已经走到了…

TP5.1 captcha 验证码刷新不出来(图片显示不了)

captcha 验证码安装路径: 解决办法: 2.打开文件后,加入 ob_clean(); 再次刷新页面就好了

谷歌验证码无法显示问题

解决方案 Google 人机验证(reCaptcha)无法显示解决方案(可解决大多数 CSP 问题) – Azure Zeng Blog 对于Edge,获取Header Editer的方式如下 注意点,Header Editer下载规则时候,需要把解决方案中的网址敲到URL的输入框里

谷歌验证码收不到 / Kaggle注册时无法验证 - 解决方案

谷歌验证码收不到 / Kaggle注册时无法验证 - 解决方案 前言问题解决方案 前言 科研时,需要注册或登录很多(Foreign)网站,极有可能发生谷歌验证码收不到的情况,本文以Kaggle网站为例介绍解决方案。 问题 Kaggle网址&…

验证码验证失败的那些事

原因就是我做登录操作时一直返回验证码不正确 我想着这不就一个手机号一个验证码吗 怎么还能错 ..... 然后我就把锅甩给了后台 (php) 后台说使用了Session让我去搜一下... From 李诗雨—http://blog.csdn.net/cjm2484836553/article/details/77341779 发现问题了 就让后台在我…

登录注册时手机验证码发送的实现

短信验证 首先需要通过个人账户获得 授权码(id、密码),再通过这些信息获得服务通过对阿里云网址 : https://www.aliyun.com/获得短信发送的权限(sms): 登录 / 注册 阿里云点击 AccessKey 管理…

CAPTCHA验证码无法加载/验证失败(UDebug)解决办法

问题 一些网站要机器验证但没有加载出验证按钮,如: UDebug… 通常是需要引用 [ www.google.com/recaptcha ] 在国内通常访问不了 so 解决 安装(开源)浏览器插件 Gooreplacer GiHub源码库 Chrome商店 Edge扩展商店 Firefox 安装好后,点击扩展中的 单击 Config Rules/配置…

为什么自学 Python 很久却还是不会用?

打个恰当又不恰当的比方,为什么考过科目一却还是不会开车? 理论上会了不是会了,在脑力里想象着速度与狂飙是没用的,不然赵括也不会纸上谈兵谈的被秦军射杀,小命儿都没了。 对于 Python 来说也是一样,编程…

程序员,职场上请远离这种人!

对有些职场人来讲,甩锅就是一种生存手段。 01.从大学打篮球说起 上大学的时候喜欢打篮球,然后我又特别喜欢抢篮板,经常是跳起来的时候没事,落下来的时候偶尔会踩到别人的脚上,于是左脚经常性崴脚,这是背景…

后台登录界面和首页

router 管理组件 在index.vue api 管理 接口,获取后暴露出来 $http store vuex 统一管理数据状态 user 和 menu $store.state.user.info app.vue 为主业渲染 login.vue 为注册页渲染 目录标题 logoinwebpack 配置 logo.vue with elementlogo.js import element-ui …

服务器运行打开一直转圈,快速解决登录PC端一直转圈数据读取中,不能进入正常聊天界面...

快速解决登录PC端一直转圈数据读取中,不能进入正常聊天界面 大家都在查:正在连接服务器,请等待.正在连接服务器,请等待.快速解决登录PC端一直转圈数据读取中,怎么连不上怎么一直连不上 怎么一直连接不上 怎么连接不上不能进入正常聊天界面,数据读取中&am…

信创JAVAWEB的相关记录

前提,由于最近信创 不少客户要求服务器上的也需要国产化, 服务器上用的是 统信UOS 具体版本为:Linux TAXC1507 4.19.0-loongson-3-desktop #4114 SMP Wed Sep 1 15:23:48 CST 2021 mips64 GNU/Linux 这个版本的JDK需要上龙芯的官网上下载专…

助力金融信创生态建设,麒麟信安亮相2021中国国际金融展信创专题展

10月13日至14日,以“聚力金融信创,筑牢数字新基建”为主题的2021中国国际金融展信创专题展(长三角)在上海举行。来自长三角地区多个金融监管机构、金融机构、科技企业的领导和代表观展参会,共同推动金融信创工作的高质…

信创电脑运行Windows程序

一、使用环境: 龙芯3A5000 UOS 专业版 v20 1050 二、wine介绍 1、在linux上安装wine,可以实现运行Windows exe程序,但并不是所有程序都可以运行. 2、wine最新版本为wine7,本次测试环境使用wine5 3、wine官网链接:W…

信创环境经典版SuerMap iManager ARM版部署流程

一、环境 操作系统:银河麒麟kylin V10CPU:鲲鹏920SuperMap iManager 10.2.1硬件:4H32G机器磁盘分区格式建议如下(请严格按照如下,减少后期有用/目录资源不够,导致Docker调度失败,还需要重新更换…

全方位解析《中国电信行业信创建设偏好报告》

电信作为信创28重点行业之一,电信、移动、联通三大电信运营商早在2020年开始,就陆续进行业务招标、集采国产服务器、建立信创实验室,抓紧高速、全面地进行信创布局。 随着数字经济时代的到来,各大运营商对于信息安全的关注度与日…

灵雀云ACP成功通过金融信创生态实验室适配验证

近日,灵雀云全栈云原生开放平台ACP(以下简称灵雀云ACP)成功通过了金融信创生态实验室适配验证,在金融科技领域的技术实力和专业水平得到了权威认可。 金融信创生态实验室(以下简称“实验室”)是由中国人民银…