macaca之app-inspector

简单介绍

之前已经将macaca的环境搭建好了,现在就需要进行元素的定位,这里使用app-inspector,然后进行自动化脚本的编写。

实际操作

一、安装app-inspector

npm i app-inspector -g


安装成功

确保如下命令中有手机或模拟器的连接,可以取得设备ID

adb devices

启动app-inspector的命令

app-inspector -u设备id


指令

元素查看

至此已经完成app-inspector的配置,接下来就是进行元素的定位以及脚本编写。

二、定位

这里用微信登录为例子介绍一下。首先微信安装后需要选择“登录”,再选择登录方式(手机号码或者微信账号等),之后输入微信账号密码,最后点击登录即可。按照这个思路可以进行自动的开始了。

1、连接设备,开启服务


开启服务

元素界面

界面

注释:

1:手机微信界面

扫描二维码关注公众号,回复: 1406198 查看本文章

2:元素

3:定位方式

2、选择定位方式

元素定位有多种定位方式,可以通过id、class name、name、css、xpath等。具体的查看文档:Macaca

3、编写脚本

如下:

# -*- coding: utf-8 -*-

'''

@author: M_派森

@time: 2018/5/22 14:22

'''

import unittest

import time

from macaca import WebDriver

from retrying import retry

desired_caps = {

    'platformName': 'android',

    'package':'com.tencent.mm',

    'activity':'.ui.LauncherUI'

    }

server_url = {

    'hostname': 'localhost',

    'port': 3456

}

class MacacaTest(unittest.TestCase):

    @classmethod

    def setUpClass(cls):

        cls.driver = WebDriver(desired_caps, server_url)

        cls.initDriver()

    @classmethod

    @retry

    def initDriver(cls):

        print("Retry connecting server...")

        cls.driver.init()

    def test_01_login(self):

        # 确认弹窗

        self.driver.accept_alert()

        # 确认弹窗

        self.driver.accept_alert()

        # 登录

        self.driver.wait_for_elements_by_id('com.tencent.mm:id/d1w')[0].click()

        # 微信号/QQ号/邮箱登录

        self.driver.wait_for_elements_by_id('com.tencent.mm:id/bwm')[0].click()

        # 输入账号

        self.driver.wait_for_elements_by_class_name('android.widget.EditText')[0].send_keys('*****')

        # 输入密码

        self.driver.wait_for_elements_by_class_name('android.widget.EditText')[1].send_keys('*****')

        # 登录

        self.driver.wait_for_elements_by_id('com.tencent.mm:id/bwn')[0].click()

        time.sleep(10)

    @classmethod

    def tearDownClass(cls):

        cls.driver.quit()

if __name__ == '__main__':

    unittest.main()

问题:这里获取到的元素为list,必须使用list的下标索引方式将元素取出,不然会报错。


报错

以上就是一个微信的登录过程。

猜你喜欢

转载自www.cnblogs.com/April-Chou-HelloWorld/p/9125778.html