前言

最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试?

本篇以摩拜小程序为例,介绍如何定位小程序里面的元素

运行环境:

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-微信小程序自动化(摩拜为例)...相关推荐

  1. python 自动化微信小程序_appium+python自动化56-微信小程序自动化(摩拜为例)

    前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0 appium v1.7.1 web ...

  2. python 手机自动化_Appium+python自动化1-环境搭建(上)

    前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+py ...

  3. 登录python自动化_Appium+Python实现自动化登录

    #Appium+Python实现自动化测试 Appium简介 官方的概述为: Appium is an open source test automation framework for use wi ...

  4. python自动化测试平台github_GitHub - DangKaio/FXTest: 接口自动化测试平台——python+flask版,支持http协议...

    FXTest测试平台 flask + Python3 实现的API自动化测试平台. 下面有介绍python flask部署相关的文章链接.为自己部署的记录文章 前后端开始进行分离,通过接口进行交互 敬 ...

  5. 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 ...

  6. python调用adb传输电脑文件到手机_appium+python自动化51-adb文件导入和导出(pull push)...

    前言 用手机连电脑的时候,有时候需要把手机(模拟器)上的文件导出到电脑上,或者把电脑的图片导入手机里做测试用,我们可以用第三方的软件管理工具直接复制粘贴,也可以直接通过adb命令导入和导出. adb ...

  7. 微信小程序官方调整头像昵称获取问题;微信扫码链接wifi,wifi地推,两种可行的解决方案

    微信小程序官方调整头像昵称获取问题:微信扫码链接wifi,wifi地推 更新时间:2022年11月9日 由于 PC/macOS 平台「头像昵称填写能力」存在兼容性问题,对于来自低于2.27.1版本的访 ...

  8. php微信域名检测工具,微信域名检测 微信域名检测官方接口的调用代码分享

    微信域名检测官方接口的使用方法,含PHP.Java.Python调用演示代码.微信域名检测官方接口是腾讯发布的微信域名状态查询接口,程序调用域名检测接口即可实时返回域名在微信内的生存状态,如果已被拦截 ...

  9. ELF应用程序二进制接口

    ELF应用程序二进制接口 荣涛 2021年11月2日 文档修改日志 日期 修改内容 修改人 备注 2021年11月2日 创建 荣涛 摘自https://docs.oracle.com/ 2021年11 ...

最新文章

  1. 【MATLAB】雅可比矩阵jacobi matrix
  2. c的按位取反运算符(~) 与逻辑逻辑(!)
  3. JAVA如何正确处理Unicode字符
  4. spring mvc学习(7):springmvc学习笔记(常用注解)
  5. 回头看看NSURLConnection
  6. php项目实战流程_一个完整的php流程管理实例代码分享
  7. css 设置表格右边有图片_20个web前端HTML5初学者实用CSS代码技巧
  8. Leetcode每日一题:973.k-closest-points-to-origin(最接近原点的K个点)
  9. linux启动参数怎么传给内核,如何启动内核(vivi与Linux kernel的参数传递情景分析)...
  10. Linux桌面版横评:五、Ubuntu 7.04
  11. python画超长图-Python 拼接多张尺寸大小不一样的图片制作长图
  12. django前后端数据交互
  13. Scintilla Documentation
  14. 【阿里云-如何实现实名认证】
  15. Autovue集成全过程
  16. 国庆,几家欢喜几家愁
  17. python字符串与文本处理教程
  18. 无水印的电脑录屏软件,推荐这3款软件,2023年新版
  19. UE4(Unreal Engine4)虚幻引擎视口布局,并且自定义HDRI
  20. ANSYS学习3——加载求解

热门文章

  1. 将Jersey与Spring整合
  2. HH SaaS电商系统管理后台的商品规格编辑
  3. Mybatis核心配置文件xml详解
  4. Linux的open函数的调用过程,Linux 中open系统调用实现原理
  5. 【WebRTC---进阶篇】(一)服务器基础编程
  6. 知识贴!单片机C语言编程之.H文件与.C文件的关系
  7. GCC-__attribute__()(一)属性机制
  8. 注入器 过检测_连云港管道检测服务
  9. iptables 开放远程_JavaWeb项目的部署以及远程调试
  10. springboot 获取登录浏览器_java项目部署到linux服务器,微信小程序后台springboot项目部署到云服务器(图文详解)...