Appium之UIAutomator API选择元素

Posted 呸呸裴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium之UIAutomator API选择元素相关的知识,希望对你有一定的参考价值。

UI Automator测试框架提供了一组API来构建UI测试。

利用UI Automator API可以执行在测试设备中,打开‘设置’菜单或应用启动器等操作。

UI Automator测试框架非常适合编写黑盒自动化测试

【注意】如果你的安卓机版本在6及以上,可以在desired_caps字典中加上下面这句代码:

                   \'automatorName\': \'UiAutomator2\'

UI Automator查看器

  访问设备状态:

            UI Automator测试框架提供了一个UiDevice类。该类可用于执行以下操作:

             - 更改设备旋转

             - 按D-pad按钮

             - 按返回、主屏幕、菜单按钮

             - 打开通知栏

             - 对当前窗口进行屏幕截图

            如:要模拟按下‘主屏幕’按钮,请调用UiDevice.pressHome()方法

UI Automer API:

     UiSelector:是我们appium自动化代码选择元素时直接使用到的。

     UiSelector类似于appium中find_element_by_xxx()方法中的函数值。

   如:根据ID选择元素

        java语法:newSelector().resourceId("io.manong.developerdaily:id/tv_tab_title")

        appium用法:driver.find_element_by_android_uiautomator(\'new UiSelector().resourceId("io.manong.developerdaily:id/tv_tab_title")\')

   如:根据className选择元素

        java语法:new UiSelector().className("android.widget.TextView")

        appium 用法:driver.find_element_by_android_uiautomator(\'new UiSelector().className("android.widget.TextView")\')

   如:根据class name 和text属性

        code = \'new UiSelector().text("我的").classname("android.widget.TextView")\'

        ele = driver.find_element_by_android_uiautomator(code)

  如:根据childSelector和instance方法

       code = \'new UiSelector().resourceId(\'\\

                        \' "io.manong.developerdaily:id/tab_bar").childSelector(new UiSelectot().className(\'\\

                        \' "android.widget.TextView").instance(3))\'

       ele = driver.find_element_by_andorid_uiautomator(code)

       ele.click()

-------------------------代码实现------------------------------- 

       

 

滑动屏幕:

      *  Appium WebDriver的swipe方法(坐标和duration)

      * 直接查看,估算操作坐标

      * 先获取元素坐标,再分析操作坐标(更健壮)

      location = ele.location   左上角坐标   (dict:有x,y)

      size1 = ele.size  宽  高  (dict:有width,height)

      操作不可见元素:

            * 先滑动到其可见

            * 再操作该元素

            * 获取全屏幕尺寸

                     screenSize = driver.get_window_size()

                     screenW = screenSize[\'width\']

                     screenH = screenSize[\'height\']

---------------------------代码实现------------------------------

        

以上是关于Appium之UIAutomator API选择元素的主要内容,如果未能解决你的问题,请参考以下文章

uiautomator与appium的区别

Appium python自动化测试系列之Android UIAutomator终极定位

appium和uiautomator的区别

Appium+python自动化- Android UIAutomator终极定位凶“胸”器(超详解)

uiautomator2,appium, airtest几个工具浅析

appium之toast处理