专栏首页从零开始学自动化测试appium+python自动化56-微信小程序自动化

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)
# 作者:上海-悠悠 QQ交流群:512200893

# 向下滑动
swipeDown(driver)

小程序操作

1.进入小程序后点右下角的头像,这里可以通过坐标去点击

由于每个手机分辨率不一样,这里可以直接去计算下图标在屏幕的比例

2.接着点击“发红包赚赏金”

# 注意,这里是不需要切换的,别踩坑了!!!!!!
# driver.switch_to.context('WEBVIEW_com.tencent.mm:tools')  # 不要加这行
time.sleep(3)
# 作者:上海-悠悠 QQ交流群:512200893
# 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()

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • appium+python自动化41-微信公众号

    本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作

    上海-悠悠
  • Appium+python自动化29-toast消息

    前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到。 一、 Supp...

    上海-悠悠
  • Selenium2+python自动化71-多个浏览器之间的切换

    前言 有时候一些业务的功能涉及到多个系统,需要在web系统1打开造一些数据,然后用到某些参数是动态生成的,需要调用web系统2里面的参数。 举个简单例子:在做...

    上海-悠悠
  • Python3 Selenium+Chr

    以前抓取动态网页是用PhantomJS + Selenium + ChromeDriver,但是新版的Selenium不支持PhantomJS了,程序跑的时候总...

    py3study
  • python appium操作手机及ap

    py3study
  • Selenium和PhantomJS 终极最全使用总结

    1. 加载页面[image.png]PhantomJS 截取的是网页的完整页面,包括下拉进度条的内容

    Python疯子
  • selenium-webdriver|4 常用API介绍

    <option value="自动化测试">自动化测试</option>

    测试邦
  • Python Selenium的使用(爬虫)

    Python知识大全
  • 一日一技:使用上下文管理器来强制关闭 Chromedriver

    当我们使用 Selenium 通过 Chromedriver 启动 Chrome 浏览网页时,可能会由于某些异常情况导致程序崩溃,但 Chromedriver ...

    青南
  • Python爬虫(二十二)_selenium案例:模拟登陆豆瓣

    本篇博客主要用于介绍如何使用selenium+phantomJS模拟登陆豆瓣,没有考虑验证码的问题,更多内容,请参考:Python学习指南 #-*- co...

    用户1174963

扫码关注云+社区

领取腾讯云代金券