美文网首页
macaca之app-inspector

macaca之app-inspector

作者: M_派森 | 来源:发表于2018-06-02 16:31 被阅读30次

    简单介绍

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

    实际操作

    一、安装app-inspector

    npm i app-inspector -g

    安装成功

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

    adb devices

    启动app-inspector的命令

    app-inspector -u设备id

    指令 元素查看

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

    二、定位

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

    1、连接设备,开启服务

    开启服务 元素界面 界面

    注释:

    1:手机微信界面

    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的下标索引方式将元素取出,不然会报错。

    报错

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

    相关文章

      网友评论

          本文标题:macaca之app-inspector

          本文链接:https://www.haomeiwen.com/subject/xiersftx.html