前期准备

微信小程序作为现在流行的一种应用载体,很多小伙伴都有对其做自动化测试的需求,由于腾讯系 QQ、微信等是基于腾讯自研 X5 内核,不是谷歌原生 webview,所以调试会有些许差异(现在很多 app 产品也开始流行采用 X5 内核作为其内嵌 Web 浏览服务)。

genymotion、夜神等模拟器是intel的X86架构,很多app安装不了,比如微信、qq等(虽然说可以通过安装arm解释器来解决该问题,但是进行X5内核调试的话也会出现问题),建议最好是一台真实的手机来做。

需要注意的是 X5 内核只支持手机,模拟器是不支持的。调试和抓取小程序webview这些都需要真机完成

链接:http://testingpai.com/article/1615452452052

https://www.cnblogs.com/yyoba/p/9455519.html

1、       
打开手机微信调试模式

微信基于腾讯自研X5内核,所以需要对手机开启X5调试模式,设置允许抓取小程序的Inspect,方便对页面元素进行定位,这些工作的前提都需要开启调试模式

打开webview微信小程序的开关

1、 往文件助手或微信好友发送http://debugx5.qq.com,这个页面可正常打开,X5内核的设置页面

2、
如果点击这个http://debugx5.qq.com,进到的页面提示当前非X5内核,按照给出的提示操作,聊天框输入http://debugtbs.qq.com并点击,提示要在聊天输入框输入debugmm.qq.com/?forcex5=true

3、
根据提示,在聊天输入框输入debugmm.qq.com/?forcex5=true,并点击,弹出如下

4、 成功切换之后,再点击http://debugx5.qq.com,就可以进到X5调试内核页面

5、 首次打开,要安装线上内核,点击【安装线上内核】,会自动开始下载,下载完成后,提示重启,点击重启;最好将微信也一起结束进程重启一下。

6、 点击DebugX5,进可以进到第一步的页面,设置抓取小程序webview的开关了

7、 如果第六步报“debugx5页面仅在x5内核时有效,由于当前没有使用X5内核,无法打开Debugx5”,这个时候微信重启,重新打开吧

2、       
验证是否能抓到微信小程序的webview

前提条件:手机通过数据线连接到电脑端,电脑端打开chrome,输入chrome://inspect/#devices,即可在这里看到连接的设备和抓取到信息。

Chrome 自带的 inspect 工具识别小程序/内嵌 Web 页面需要访问外网

建议使用:uc-devtools进行抓取inspect,国内有些限制,抓取到的inspect为空白。下载地址:https://dev.ucweb.com/(注:不能在谷歌浏览器下载,弹不出下载提示框)

打开微信,调起小程序,就可以查看抓到的webview了

3、       
!!!微信最新版本不能抓取到webview

安装了微信最新版本,操作小程序,怎么都抓不到小程序的webview

解决方案:降低微信版本到7.0.22

操作方法:

1、有些应用商场是有历史版本可以下载的,可先下载应用商城,搜索微信,选择历史版本,选择7.0.22进行安装(7.0.10版本太低,登录提示要用新版本)

豌豆荚可用

2、卸载最新版本前,先将手机的聊天记录备份到电脑端,使用完之后,可以将电脑端的聊天记录恢复到手机

3、重装了7.0.22版本的微信后,打开微信小程序的webview的方法同第一大点的步骤,抓不到,重启再试试!

参考文章:https://blog.csdn.net/weixin_46003972/article/details/120670598

实际操作

1、配置chromeDriver

和app自动化类似,依靠appium做自动化,小程序本质上还是 Web 页面,我们可以通过 chromeDriver 驱动小程序页面执行,小程序因为使用的 X5 内核是经过腾讯二次开发过之后的,所以 chromeDriver 驱动与 webview 版本匹配并不严格按照官方 Appium 说明的匹配规则,这里试验了几个版本的 chromeDriver,发现 V2.40 版本

下载地址:https://npm.taobao.org/mirrors/chromedriver

下载完毕后解压,将 chromeDriver 替换到 Appium 的自带 chromeDriver 所在路径:

Appium.exe所在路径\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win

下载完成后,到appium配置驱动的执行路径,设置前置,使用这个前置启动

2、获取小程序的对应进程名

在获取小程序进程名前,要先获取微信的包名

com.tencent.mm

获取小程序的进程名

adb shell dumpsys activity top | findstr ACTIVITY

3、uc-devtools进行元素的定位,编写定位元素的定位

3、代码实现

1、 和app自动化一样,要先打开app,打开app的配置信息

2、启动微信进入到主页->
下滑展开小程序列表-> 点击对应小程序

3、进入到小程序,实际上是webview,需要切换到webview进行操作,这个时候就需要用到切换上下文,switch_to.context()

4、切换到小程序之后,实际上是操作chrome页面,定位元素要用回要用webdiriver的定位元素的BY

参考:https://www.cnblogs.com/lizhe860/p/14486432.html(详细讲解了小程序)

微信小程序自动化_从环境搭建到自动化代码实现过程的更多相关文章

  1. 【微信小程序】---线上环境搭建

    一.前言 通常我们在本地电脑上开发微信小程序,调用和访问小程序会有很多问题.特别是在配有自己后端的情况下,我们通过真机访问我们的小程序会出现不可访问的问题 二.线上环境搭建 在这里我们主要以腾讯云给大 ...

  2. Vue+koa2开发一款全栈小程序(5.服务端环境搭建和项目初始化)

    1.微信公众平台小程序关联腾讯云 腾讯云的开发环境是给免费的一个后台,但是只能够用于开发,如果用于生产是需要花钱的,我们先用开发环境吧 1.用小程序开发邮箱账号登录微信公众平台 2.[设置]→[开发者 ...

  3. 微信小程序入门 第一个页面搭建

    首先搭建首页 微信小程序与web程序非常相似  有非常多的组件  多个组件形成一个页面 每个组件有自己一些特殊的属性来控制显示效果 通过js注册事件控制响应 首先使用swiper实现一个banner轮 ...

  4. 微信小程序开发之https服务器搭建三步曲

    本篇文章主要讲述3个方面的内容,如下: 1.SSL证书的获取 2.服务器 Nginx SSL 证书的配置. 3.如何兼容80端口和443端口以及为什么要同时兼容这两个端口. 1.SSL证书的获取 ht ...

  5. 微信小程序富文本渲染组件html2wxml及html2wxml代码块格式化在ios下字体过大问题

    1.组件使用: 之前微信小程序的富文本渲染组件用的wxParse,对普通富文本确实可以,但是对于代码格式pre标签则无法使用. 下面这个html2wxml很不错,可以支持代码高亮. 详细文档:http ...

  6. 微信小程序支付源码,后台服务端代码

    作者:尹华南,来自原文地址 微信小程序支付绕坑指南 步骤 A:小程序向服务端发送商品详情.金额.openid B:服务端向微信统一下单 C:服务器收到返回信息二次签名发回给小程序 D:小程序发起支付 ...

  7. 微信小程序接入,https服务器搭建和调试

    在进行小程序开发时候,调试时候,希望在本地搭建一个https环境. 准备条件: 1.公网主机(阿里云或者腾讯云主机) 2外网访问工具natapp 步骤: 1.在主机上安装nginx(nginx转发到n ...

  8. 微信小程序开发9-宿主环境(2)

    1.一个小程序页面可以分解成多个部分组成,组件就是小程序页面的基本组成单元.为了让开发者可以快速进行开发,小程序的宿主环境提供了一系列基础组件.组件是在WXML模板文件声明中使用的,WXML的语法和H ...

  9. 微信小程序阿里云服务器https搭建

    已更新 2018-11-20 1.什么是https?HTTPS(全称:安全套接字层上的超文本传输​​协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS ...

  10. 壹度DIY_微信小程序组件_小程序插件开发

    开源免费插件,diy特有的页面机制,搭配30+自定义组件,让你的站点每一个页面都可以完全自定义,可无缝对接任意小程序,如有疑问加入qq壹度小程序交流群:302866773:或wx:liu2417301 ...

随机推荐

  1. dotnet 读 WPF 源代码笔记 提升调试效率的 NamedObject 类型

    本文来聊聊 WPF 那些值得称赞的设计中的 NamedObject 类型.在 WPF 中,有很多值得我学习的设计开发思想,其中就包括本文将要介绍的 NamedObject 类型.此类型的定义仅仅只是为 ...

  2. Springboot+Prometheus+grafana 制作自己的业务监控

    目录 知识储备 系统架构 开始实现 生成业务指标 经典实现方法 自己的实现方案 引入依赖 配置文件 注册自己的指标[我这里用的是guaua格式数据] 写入指标 效果展示 配置prometheus 抓取 ...

  3. 一个 5.2k+ Star 的微服务商城系统

    大家好,我是 Java陈序员. 自从微服务开始流行之后,各种商城系统.外卖系统可是层出不穷.面试的时候人人都说做过商城系统,导致现在一听电商系统就是烂大街的项目. 黑格尔曾经说过:存在即合理.电商系统 ...

  4. SAP集成技术(四)五种集成架构

    本文中,我们将介绍并解释五个主要的模型.我们主要区分直接集成.中间件导向集成以及两个一般的架构概念.直接集成(例如点对点集成)中的标准化很少,但中间件导向的拓扑(例如中心辐射型拓扑以及企业服务总线)追 ...

  5. ITSM2023年十大功能趋势[采和]

    总体描述:更加人性化,引入自动化相关的设计和技术,更加实用好用.1. 100%服务目录服务目录必须完全贴合用户方的运维实际开展的 服务清单,而不是想当然的抄书或者臆想!都2023年了,还有完全不着调的 ...

  6. docker 搭建LNMP环境

    php7 仓库地址 https://gitee.com/haima1004/docker-lnmp

  7. 在Docker内部使用gdb调试器报错-Operation not permitted

    在docker内部使用gdb调试时刻遇到了gdb如下报错信息: warning: Error disabling address space randomization: Operation not ...

  8. 网络数据流分析工具TcpEngine V1.0.0教程-1

    概述 目前主流的网络数据分析工具主要有两类,一类是http协议分析工具,如fiddler,这类工具擅长对字符串类型协议分析:另一类是原始网络数据包的监听分析,如Wireshark,这类工具擅长分析网络 ...

  9. angular响应式表单笔记

    angular 在开发过程中对于表单的验证 import {ReactiveFormsModule, FormsModule, FormControl, FormGroup, Validators} ...

  10. AIRIOT物联网低代码平台如何配置交通部JT-808协议?

    属性配置可配置终端ID和SIM卡号,数据点配置决定设备传上来的哪些数据可以存储展示. 驱动配置可配置采集周期和通讯超时时间. AIRIOT物联网低代码平台如何配置交通部JT-808协议?具体操作如下: ...