前言

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

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

运行环境:

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()

python 自动化微信小程序_appium+python自动化56-微信小程序自动化(摩拜为例)相关推荐

  1. python 自动化微信小程序_appium+python 微信小程序的自动化

    前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 今天写一篇小程序该如何做自动化测试,如何定位,具体以膜拜为例子 webview进程 1.小程序和微信公众号还不太一样,基本 ...

  2. python实现微信小程序的接口自动化_appium+python自动化56-微信小程序自动化(摩拜为例)...

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

  3. 搜索python设计题的微信公众号_appium+python自动化42-微信公众号 (可能以后会遇到也遇到切换不了webview的问题 记录再此 还没试)...

    前言 本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作 环境准备: python 3.6 appium 1.7以上版本 微信6. ...

  4. python坐标定位手机元素_Appium+Python之元素定位和操作

    一.常用识别元素的工具 uiautomatorviewer:Android SDK自带的一个工具,在tools目录下 二.元素定位 1.格式:find_element_by_定位方式(value) 通 ...

  5. 摩拜+小程序,让单车变得“触手可骑”

    2017年1月9日小程序上线,2017年2月23日,微信宣布小程序和摩拜单车合作,用户通过微信"扫一扫"进入摩拜小程序就能骑走摩拜单车. 摩拜单车接入微信小程序的新功能之后,所有的 ...

  6. 生活小程序摩拜单车为啥投开锁功能?生活小程序是趋势?

    这段时间,我和家里人一直都在使用摩拜单车这个目前在生活小程序中最火的小程序,几乎现在武汉大街小巷都有摩拜单车的身影!我妈也是下班天天骑单车,我也开心不少.而且我妈还告诉我让我去下载个APP叫亿里财,这 ...

  7. 摩拜单车小程序开发实践与框架分析

    以打造内容全.技术新.可实操的小程序小册为目标,整本小册共包含 21 节,不仅讲述了小程序开发的一些基础知识,也通过摩拜单车业务案例深入小程序开发,此外,还加入了主流框架的使用对比和深入的技术细节分析 ...

  8. 摩拜女程序员状告其前端负责人性骚扰!

    阳光下的黑暗,一触就破. 昨天,一则丑闻在技术圈散开.网传来自摩拜 SPE 前端组的一名程序媛发文举报自己的 Leader--摩拜客户端&前端组负责人张某某(已婚,并有一个刚满半岁的儿子)对包 ...

  9. python开发图形小程序_python小程序图画 python开发微信小程序

    你用python写过哪些好玩的微信小程序? 首先要明确一点,python是后台语言,不能直接用python来写微信小程序的. 微信小程序是用javascript和css来写的. python只是用来给 ...

最新文章

  1. Python 复数属性及操作介绍
  2. 网络设备中的linux,理解linux虚拟网络设备veth
  3. 你应该掌握的七种回归技术
  4. mysql tmp_table_size_mysql tmp_table_size=256m
  5. Python的小宇宙,怎么样才能发挥出来?
  6. 计算机应用段落设置,计算机应用操作基础.docx
  7. Socket通信案例
  8. 推荐系列:2008年第05期 总7期
  9. Java对Map排序
  10. 移远4G模组EC600N进行TCP/IP连接和服务器测试
  11. SQLServer 数据库之锁
  12. FreeCAD源码分析:FEM模块
  13. Steam流式传输后插耳机没有声音
  14. 消防工程师 5.气体灭火系统
  15. kibana的安装(elasticsearch图形化界面)
  16. 从0开始强化学习——强化学习的简介和分类
  17. NOIP2009提高组复赛原题题解——Proking
  18. AI技术落地医疗搜索 搜狗明医独家首推“湿疹痱子识别”功能
  19. Python_真值表求解器(逻辑表达式的求解)(eval实现求解)【2022-01-22】
  20. chatGPT4.0-介绍Katalon Studio

热门文章

  1. MyEclipse 10 中安装Android ADT 22插件的方法
  2. 每句话都可以品半辈子!!!
  3. MRTG教程(二):MRTG配置文件的生成工具cfgmaker(上)
  4. 解决VMware虚拟机时间同步问题
  5. SQL 2005 Express 的“企业管理器” 下载
  6. jenkins部署net core初探
  7. linux的本地时间命令
  8. 猫猫学iOS(四十五)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。...
  9. Django模拟新浪微博的@功能
  10. GDC服务器主机与证书不匹配,调用web服务soap时,错误https URL主机名与客户端信任库中服务器证书上的公用名(CN)不匹配...