python实现微信小程序的接口自动化_appium+python自动化56-微信小程序自动化(摩拜为例)...
前言
最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试?
本篇以摩拜小程序为例,介绍如何定位小程序里面的元素
运行环境:
android 7.0
appium v1.7.1
webview进程
1.小程序和微信公众号还不太一样,基本思路差不多,先配置:chromeOptions
'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}
2.androidProcess进程可以通过adb shell去查看,先点开摩拜小程序,然后进adb shell
C:\Users\admin>adb shell
HWBND-H:/ $ dumpsys activity top | grep ACTIVITY
ACTIVITY com.tencent.mm/.plugin.appbrand.ui.AppBrandUI d0f2ff4 pid=9104
HWBND-H:/ $ ps 9104
USER PID PPID VSIZE RSS WCHAN PC NAME
u0_a119 9104 495 2706272 283720 0 0000000000 S com.tencent.mm:appbrand0
HWBND-H:/ $
3.com.tencent.mm:appbrand0 这个就是我们要找到的了
摩拜小程序
1.先点开微信首页,下滑页面,出现小程序菜单后点击‘摩拜’
2.代码实现:
def swipeDown(driver, t=500, n=1):
'''向下滑动屏幕'''
l = driver.get_window_size()
x1 = l['width'] * 0.5 # x坐标
y1 = l['height'] * 0.25 # 起始y坐标
y2 = l['height'] * 0.75 # 终点y坐标
for i in range(n):
driver.swipe(x1, y1, x1, y2,t)
# 向下滑动
swipeDown(driver)
小程序操作
1.进入小程序后点右下角的头像,这里可以通过坐标去点击
由于每个手机分辨率不一样,这里可以直接去计算下图标在屏幕的比例
2.接着点击“发红包赚赏金”
# 注意,这里是不需要切换的,别踩坑了!!!!!!
# driver.switch_to.context('WEBVIEW_com.tencent.mm:tools') # 不要加这行
time.sleep(3)
# tap触摸右下角那个菜单坐标 [873,1654], [1080,1861]
driver.tap([(873, 1654), (1080, 1861)], 500)
# 点发红包赚赏金
driver.find_element_by_accessibility_id("发红包赚赏金").click()
参考代码
# coding:utf-8
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
import time
# 作者:上海-悠悠 QQ交流群:512200893
desired_caps = {
'platformName': 'Android',
'platformVersion': '7.0',
'deviceName': 'A5RNW18316011440',
'appPackage': 'com.tencent.mm',
'appActivity': '.ui.LauncherUI',
'automationName': 'Appium',
# 'unicodeKeyboard': True,
# 'resetKeyboard': True,
'noReset': True,
'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(10)
def swipeDown(driver, t=500, n=1):
'''向下滑动屏幕'''
l = driver.get_window_size()
x1 = l['width'] * 0.5 # x坐标
y1 = l['height'] * 0.25 # 起始y坐标
y2 = l['height'] * 0.75 # 终点y坐标
for i in range(n):
driver.swipe(x1, y1, x1, y2,t)
# 向下滑动
swipeDown(driver)
time.sleep(2)
# 点开小程序
driver.find_elements_by_id("com.tencent.mm:id/r9")[0].click()
time.sleep(4)
print(driver.contexts)
# 注意,这里是不需要切换的,别踩坑了!!!!!!
# driver.switch_to.context('WEBVIEW_com.tencent.mm:tools')
time.sleep(3)
# tap触摸右下角那个菜单坐标 [873,1654], [1080,1861]
driver.tap([(873, 1654), (1080, 1861)], 500)
# 点发红包赚赏金
driver.find_element_by_accessibility_id("发红包赚赏金").click()
上海-悠悠 QQ交流群:330467341
python实现微信小程序的接口自动化_appium+python自动化56-微信小程序自动化(摩拜为例)...相关推荐
- python 自动化微信小程序_appium+python自动化56-微信小程序自动化(摩拜为例)
前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0 appium v1.7.1 web ...
- python 手机自动化_Appium+python自动化1-环境搭建(上)
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+py ...
- 登录python自动化_Appium+Python实现自动化登录
#Appium+Python实现自动化测试 Appium简介 官方的概述为: Appium is an open source test automation framework for use wi ...
- python自动化测试平台github_GitHub - DangKaio/FXTest: 接口自动化测试平台——python+flask版,支持http协议...
FXTest测试平台 flask + Python3 实现的API自动化测试平台. 下面有介绍python flask部署相关的文章链接.为自己部署的记录文章 前后端开始进行分离,通过接口进行交互 敬 ...
- python windows ui自动化_appium+python+windows UI自动化 四.简单使用Appium客户端
前期准备 关闭 app adb shell pm path cn.gloud.client.mobile 启动APP adb shell am start -W -n cn.gloud.clien ...
- python调用adb传输电脑文件到手机_appium+python自动化51-adb文件导入和导出(pull push)...
前言 用手机连电脑的时候,有时候需要把手机(模拟器)上的文件导出到电脑上,或者把电脑的图片导入手机里做测试用,我们可以用第三方的软件管理工具直接复制粘贴,也可以直接通过adb命令导入和导出. adb ...
- 微信小程序官方调整头像昵称获取问题;微信扫码链接wifi,wifi地推,两种可行的解决方案
微信小程序官方调整头像昵称获取问题:微信扫码链接wifi,wifi地推 更新时间:2022年11月9日 由于 PC/macOS 平台「头像昵称填写能力」存在兼容性问题,对于来自低于2.27.1版本的访 ...
- php微信域名检测工具,微信域名检测 微信域名检测官方接口的调用代码分享
微信域名检测官方接口的使用方法,含PHP.Java.Python调用演示代码.微信域名检测官方接口是腾讯发布的微信域名状态查询接口,程序调用域名检测接口即可实时返回域名在微信内的生存状态,如果已被拦截 ...
- ELF应用程序二进制接口
ELF应用程序二进制接口 荣涛 2021年11月2日 文档修改日志 日期 修改内容 修改人 备注 2021年11月2日 创建 荣涛 摘自https://docs.oracle.com/ 2021年11 ...
最新文章
- 【MATLAB】雅可比矩阵jacobi matrix
- c的按位取反运算符(~) 与逻辑逻辑(!)
- JAVA如何正确处理Unicode字符
- spring mvc学习(7):springmvc学习笔记(常用注解)
- 回头看看NSURLConnection
- php项目实战流程_一个完整的php流程管理实例代码分享
- css 设置表格右边有图片_20个web前端HTML5初学者实用CSS代码技巧
- Leetcode每日一题:973.k-closest-points-to-origin(最接近原点的K个点)
- linux启动参数怎么传给内核,如何启动内核(vivi与Linux kernel的参数传递情景分析)...
- Linux桌面版横评:五、Ubuntu 7.04
- python画超长图-Python 拼接多张尺寸大小不一样的图片制作长图
- django前后端数据交互
- Scintilla Documentation
- 【阿里云-如何实现实名认证】
- Autovue集成全过程
- 国庆,几家欢喜几家愁
- python字符串与文本处理教程
- 无水印的电脑录屏软件,推荐这3款软件,2023年新版
- UE4(Unreal Engine4)虚幻引擎视口布局,并且自定义HDRI
- ANSYS学习3——加载求解
热门文章
- 将Jersey与Spring整合
- HH SaaS电商系统管理后台的商品规格编辑
- Mybatis核心配置文件xml详解
- Linux的open函数的调用过程,Linux 中open系统调用实现原理
- 【WebRTC---进阶篇】(一)服务器基础编程
- 知识贴!单片机C语言编程之.H文件与.C文件的关系
- GCC-__attribute__()(一)属性机制
- 注入器 过检测_连云港管道检测服务
- iptables 开放远程_JavaWeb项目的部署以及远程调试
- springboot 获取登录浏览器_java项目部署到linux服务器,微信小程序后台springboot项目部署到云服务器(图文详解)...