聊聊微信小程序自动化如何来做?
源码共读
共 1265字,需浏览 3分钟
· 2020-03-10
作者丨星安果来源丨AirPython
1. 前言
平常我们使用自动化主要是针对 App 端和 Web 端,另外还有两种场景比较少用但是也很重要,分别是:浏览器、微信小程序。今天我们聊聊如何在微信小程序上进行自动化操作。2. 微信小程序
小程序内嵌于微信内部,页面包含 Native 原生元素和 Web 元素,相当于一个混合应用。并且,小程序 Web 部分是基于腾讯 X5 内核开发的,也是一个特殊的 WebView。那小程序如何做自动化呢?主要方法包含:UiAutomator 原生、基于 WebView 、基于微信官方自动化 SDK下面将这些方式逐一进行说明
3. 原生
原生的自动化就是利用 UiAutomator2 捕获到元素 UI 树,然后利用元素属性及层级关系及坐标值来定位元素,执行一系列自动化操作。但是原生有一个缺点,由于小程序基于 WebView,所以元素定位符缺失,很多属性包含:content-desc、resource-id 不存在。虽然利用这种方法来进行元素定位存在一定难度,但是还是可以利用元素的层级关系来补充这个缺点。4. WebView
网络上大部分的教程都是基于 WebView 来完成的自动化。首先,需要打开微信的调试功能,文件传输助手中输入:debugx5.qq.com 进入,勾选上 :打开 TBS 内核 Inspector 调试功能。接着,在 Chrome 上输入下面的命令进行到设备和页面管理页面chrome://inspect/#devices点击对应的页面项,即能在开发者工具内展示小程序目标页面完整的 HTML 元素信息。自动化的操作就很简单了。比如使用 Appium 的话,直接将对应的小程序发送到文件发送助手中,作为自动化开始的入口。切换到小程序所有的 Context ,最后,利用 Css 选择器去选择网页元素进行一系列自动化操作。需要说明的是,这种方式在微信 7.X 后,默认已经无法基于 WebView 完成自动化操作了,这个可以降低 ChromeDriver 的版本来对应微信 x5 内核的版本。5. 官方 SDK
微信官方提供了小程序自动化 SDK,作为一款标准的测试框架,支持真机和模拟器。如果是自己公司开发的小程序,完全可以配置小程序开发者工具,利用官方提供的 API 编写简单的脚本,指向项目地址,借助 npm 命令完成自动化操作。如果是第三方小程序,这种方式就不适合了。6. 对比
上面提到的小程序自动化的 3 种方式,各有优缺点。如果是微信小程序源码,建议使用官方 SDK 完成小程序的自动化,否则可以选择原生和 WebView 中的一种。另外,使用 WebView 做小程序的自动化对 ChromeDriver 的版本及 x5 内核版本有要求,需要保证统一。近期精彩内容推荐:
在看点这里好文分享给更多人↓↓
评论
女律师做擦边直播火了!称月入五千活不下去,直播能赚2万
近日,上海的一名年轻女律师火了——因为一句话,让她迅速成为舆论焦点。这位名为“是小冰心啊”的用户,在律师相关讨论帖中评论“去做擦边直播吧”,称自己律师收入月入5000元,直播收入2万元左右。她自称,“没有直播,我在上海活不下去”。据悉,该用户在多个社交平台曾发布舞蹈和普法结合视频,其上述言论引发热议
码农沉思录
0
偷偷告诉你如何一台电脑开多个微信!
大家好,我是轩辕。前几天在粉丝群里,有人问我是怎么在一台电脑上同时登录两个微信的?正好之前写过一篇文章,分析过原理,分享给没看过的小伙伴学习一下。手机端多开微信估计很多人都知道,像华为、小米等手机系统都对此做了支持,不过在运行Windows系统的电脑上怎么启动两个微信呢?其实很简单,你只需要写一个批
编程技术宇宙
0
让扩散模型听话的小秘籍?CAN:通过操控权重来控制条件生成模型,图像生成效率大升级!
↑ 点击蓝字 关注极市平台作者丨科技猛兽编辑丨极市平台极市导读 本文提出的 CAN 模型 (Condition-Aware Neural Network) 是一种对图像生成模型添加控制的方法。CAN 可以通过动态操纵神经网络的权重来控制图像生成过程。作者在 ImageNet 图像
极市平台
0
自动化测试做得好的标准是什么
自动化测试要做得好的标准,主要包括以下几个方面:一、高覆盖率与精准定位1、测试用例覆盖全面:自动化测试应覆盖产品的核心功能、关键业务流程以及常见的异常场景,确保测试范围广泛,降低遗漏风险。2、问题定位准确:自动化测试应能够精准地识别并定位问题,包括缺陷的位置、产生的原因以及可能的影响,为开发团队提供
测试开发社区
0
架构应该如何来理解?
来源:zhuanlan.zhihu.com/p/141027477👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:htt
小哈学Java
0
springboot第70集:字节跳动后端三面经,一文让你走出微服务迷雾架构周刊
创建一个使用Kubernetes (K8s) 和 Jenkins 来自动化 GitLab 前端项目打包的CI/CD流水线,需要配置多个组件。下面,我将概述一个基本的设置步骤和示例脚本,以帮助你理解如何使用这些工具整合一个自动化流程。前提条件确保你已经有:Kubernetes 集群:用于部署 Jenk
程序源代码
0
Go早期是如何在Google内部发展起来的
2007年Go诞生于Google,2009年Google正式对外宣布了Go语言的开源!时至今日,距离Go开源已经过去了近15个年头了[1]!Go在Google公司内部究竟是怎样的一个状态呢?前Google员工Yves Junqueira近期撰文从其个人所见所闻谈了Go在Google的历程[2]!这里
GoCN
0
用 R Bookdown 做本书,上线
我的写作基础设施:1、Typora2、Cloudflare R23、Picgo4、Obsidian5、GitHub6、mdnice本合集会一一介绍上述工具的安装、配置、使用等等还会介绍:服务器配置GitHub Pages、Cloudflare Pages、Vercel 的使用用 Jekyll、Boo
机器学习算法与Python实战
0