Appium之UIAutomator API选择元素

时间:2021-10-26 06:28:09

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之UIAutomator API选择元素

 

滑动屏幕:

      *  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选择元素