appium+python 微信小程序的自动化
sudo kill -9 $(lsof -i:8889 -t)
mitmweb -p 8889 -s addons.py
mitmdump -q -p 8889 -s addons.py
http://appium.io/docs/en/writing-running-appium/caps/
adb logcat -v time | grep `adb shell ps | grep com.tencent.mm.appbrand0 | cut -c10-15` >/home/androidlog.txt
uiautomatorviewer
!!!! WARNING: You are on OS X 10.11 El Capitan or greater, you may need to add the
!!!! WARNING: `--unsafe-perm=true` flag when running `npm install`
!!!! WARNING: or else it will fail.
===
安装macna问题
前言
最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试?
今天写一篇小程序该如何做自动化测试,如何定位,具体以膜拜为例子
webview进程
1.小程序和微信公众号还不太一样,基本思路差不多,先配置:chromeOptions
'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}
2.androidProcess进程可以通过adb shell去查看,先点开摩拜小程序,然后进adb shell
进入shell后输入:dumpsys activity top | grep ACTIVITY
- C:\Users\admin>adb shell
- HWBND-H:/ $ dumpsys activity top | grep ACTIVITY
- ACTIVITY com.tencent.mm/.plugin.appbrand.ui.AppBrandUI d0f2ff4 pid=7332
此时可以看到pid
然后输入:ps 7332
- HWBND-H:/ $ ps 7332
- USER PID PPID VSIZE RSS WCHAN PC NAME
- u0_a119 7332 495 2706272 283720 0 0000000000 S com.tencent.mm:appbrand0
- HWBND-H:/ $
3.com.tencent.mm:appbrand0 这个就是我们要找的东西
正式开始:
1. 下拉为微信聊天页面,出现摩拜小程序(显示最近使用的哦,你的可能是别的小程序)

怎样实现下拉滑动呢?使用driver的swipe方法,我这里用的是我封装好的滑动方法
- #向下滑动
- def swipe_down(driver,t=500,n=1):
- s = driver.get_window_size()
- x1 = s['width'] * 0.5 # x坐标
- y1 = s['height'] * 0.25 # 起点y坐标
- y2 = s['height'] * 0.75 # 终点y坐标
- for i in range(n):
- driver.swipe(x1,y1,x1,y2,t)
2. 点击摩拜小程序图标
- # 点击膜拜单车
- driver.find_element_by_id('com.tencent.mm:id/ij').click()
- time.sleep(4)
- print(driver.contexts)
3.点击右下角的小头像
由于这个页面是view.view属性所以不好用常用定位方法定位,只好用坐标来定位了!

- # tap触摸右下角那个人头坐标
- driver.tap([(972, 1613), (1034, 1622)], 1000) #tap的点必须是tuple类型,一个点是一个tuple
- time.sleep(5)
- print('进入我的页面')
4.点击钱包,这里也是利用坐标定位
- # 点击我的钱包
- driver.tap([(267, 907)], 500)
- time.sleep(4)
- print('进入钱包')
5.点击余额,这里利用xpath定位
- # 点击余额
- driver.find_element_by_xpath('//*[@text="余额"]').click()
- time.sleep(4)
6.点击充值,利用xpath定位
- # 点击充值
- driver.find_element_by_xpath('//*[@text="充值"]').click()
- time.sleep(2)
我就不充值了,因为太穷,这里基本就是一个进入小程序完成充值过程的一个自动化操作了,下面是完整的代码:
- #coding:utf-8
- from appium import webdriver
- import time,os
- from common.My_swipe import swipe_down
- desired_caps = {
- 'platformName': 'Android',
- 'platformVersion': '8.0',
- 'deviceName': '740dc3d1',
- 'appPackage': 'com.tencent.mm',
- 'appActivity': '.ui.LauncherUI',
- 'automationName': 'Uiautomator2',
- # 'unicodeKeyboard': True,
- # 'resetKeyboard': True,
- 'noReset': True,
- 'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}
- }
- driver = webdriver.Remote(r'http://127.0.0.1:4723/wd/hub', desired_caps)
- time.sleep(3)
- # 向下滑动
- swipe_down(driver)
- time.sleep(2)
- # 点击膜拜单车
- driver.find_element_by_id('com.tencent.mm:id/ij').click()
- time.sleep(4)
- print(driver.contexts)
- # tap触摸右下角那个人头坐标
- driver.tap([(972, 1613), (1034, 1622)], 1000) #tap的点必须是tuple类型,一个点是一个tuple
- time.sleep(5)
- print('进入我的页面')
- # 点击我的钱包
- driver.tap([(267, 907)], 500)
- time.sleep(4)
- print('进入钱包')
- # 点击余额
- driver.find_element_by_xpath('//*[@text="余额"]').click()
- time.sleep(4)
- # 点击充值
- driver.find_element_by_xpath('//*[@text="充值"]').click()
- time.sleep(2)
- #接下来就是摩拜的充值页面了,由于我太穷充不起,所以就介绍到这里
总结:其实这里只是介绍一个小程序自动化的大概思路吧,有疑问的可以加我qq 970185127 ,未完待续.....
appium+python 微信小程序的自动化的更多相关文章
- 使用Appium 测试微信小程序和微信公众号方法
由于腾讯系QQ.微信等都是基于腾讯自研X5内核,不是google原生webview,需要打开TBS内核Inspector调试功能才能用Chrome浏览器查看页面元素,并实现Appium自动化测试微信小 ...
- python 微信小程序自动化
微信小程序自动化 https://www.cnblogs.com/yyoba/python27 - FautoTesthttps://www.cnblogs.com/yyoba/p/9973731.h ...
- 【腾讯优测干货分享】微信小程序之自动化亲密接触
本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/HcPakz5CV1SHnu-U8n85pw 导语 山雨欲来风满楼,最 ...
- Appium 测试微信小程序 Webview
通过微信打开debugx5.qq.com,或者直接扫下面二维码 勾选[打开TBS内核Inspector调试功能] Chrome查看页面元素 手机连接电脑,查看是否连接成功.如下展示设备号则为连 ...
- 使用 Appium 测试微信小程序 Webview
打开调试功能 通过微信打开debugx5.qq.com,或者直接扫下面二维码 勾选[打开TBS内核Inspector调试功能] Chrome查看页面元素 手机连接电脑,查看是否连接成功.如下展 ...
- 微信小程序UI自动化:实践之后的记录01-选择工具/框架
目录 1. 前言 2. 工具/框架/库选择 2.1 miniprogram-automator官方介绍(摘自官方哈) 小程序自动化 特性 2.2 minium官方介绍 特性 3. 如何选择 4. 对应 ...
- 微信小程序UI自动化: minium文档部署
目录 参考资料 1. 在线文档(临时) 2. 本地部署 参考资料 https://git.weixin.qq.com/minitest/minium-doc 1. 在线文档(临时) 其实上面的链接里面 ...
- 【Appium + Python + WebviewH5】之微信小程序自动化测试
进行调试,打开X5: http://debugmm.qq.com/?forcex5=true http://debugx5.qq.com http://debugtbs.qq.com 一般前两个就可以 ...
- 『与善仁』Appium基础 — 30、操作微信小程序
目录 1.测试微信小程序前提 2.获取微信小程序的进程 3.代码示例 4.补充:(了解) 微信小程序和微信公众号的测试方式基本上是一样的. 微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化 ...
随机推荐
- ANE打包工具使用视频教程 -- 梦宇技术 @极客学院
来源:http://xtiqin.blog.163.com/blog/static/17017217920133584934827/ ANE打包工具使用视频教程 2013-04-05 08:49:34 ...
- 【亲测可行,图片宽度高度自适应】c# Graphics MeasureString精确测量字体宽度
, , ) { int count = number.Length; //需要配置的字段 //Font f = new Font("Microsoft Sans Serif", f ...
- instanceof 和isInstance
Java中的instanceof关键字 instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边 ...
- Mysql学习之事务的隔离性
今天咱们说说事务,相信大家都知道事务的 ACID (Atomicity.Consistency.Isolation.Durability,即原子性.一致性.隔离性.持久性). 原子性:表示一个事务不可 ...
- Scrapy 概览笔记
本项目代码可参考 imzhizi/myspider: a scrapy demo with elasticsearch 虚拟环境的创建 建议爬虫项目都创建虚拟环境 虚拟环境在 Python 项目中真的 ...
- InteiiJ IDEA中如何制定制定哪一个配置文件
项目下有好些application.property文件 彼此之间也不是什么 从application.property中指定dev就去对应dev的关系 就想用我本地的数据库 于是添加了一个appl ...
- c++第四次作业
继承与派生--访问控制 一.知识要点 (一)知识回顾: 基类的成员可以有public.protected.private三种访问属性.基类的自身成员可以对基类中任何一个其他成员进行访问,但是通过基类的 ...
- 思考---(科研99% )VS (产品75%)
转目前人脸识别技术的挑战是什么? - 知乎 标签: | 发表时间:-- : | 作者: 出处:https://www.zhihu.com 也是放假太闲,上知乎来锻炼一下手指. 在回答题主的问题的时候, ...
- Python for Email
SMTP 正如 HTTP 是计算机用来通过因特网发送网页的协议,简单邮件传输协议(SMTP) 是用于发送电子邮件的协议 import smtplib 发送电子邮件 连接到SMTP服务器 smtpObj ...
- linux系统编程之文件与io(一)
经过了漫长的学习,C语言相关的的基础知识算是告一段落了,这也是尝试用写博客的形式来学习c语言,回过头来看,虽说可能写的内容有些比较简单,但是个人感觉是有史起来学习最踏实的一次,因为里面的每个实验都是自 ...