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选择元素的更多相关文章

  1. jQuery选择器对应的DOM API ——选择元素

    英文原文:http://blog.garstasio.com/you-dont-need-jquery/selectors/愚人码头注: 原作者的写这文章的意图是让我们抛弃jQuery,You Don ...

  2. 抛弃jQuery:DOM API之选择元素

    原文链接:http://blog.garstasio.com/you-dont-need-jquery/selectors/ 我的Blog:http://cabbit.me/you-dont-need ...

  3. Appium脚本(4) 使用uiautomator方法定位元素

    from app.find_element.capability import driver from time import sleep # 使用uiautomator方法定位元素 accunt_i ...

  4. 【转】Uiautomator Api浅析

    原文地址:http://blog.sina.com.cn/s/blog_ae2575ff01018b2o.html uiautomator api: http://android.toolib.net ...

  5. JQuery基础教程:选择元素(上)

    jQuery最强大的特性之一就是它能够简化在DOM中选择元素的任务,DOM中的对象网络与家谱有几分类似,当我们提到网络中元素之间的关系时,会使用类似描述家庭关系的术语,比如父元素.子元素,等等.通过一 ...

  6. 第三章:JavaScript选择元素

    我们使用jQuery时,很常用的套路是“两步”第一步:选取元素第二步:对选中的元素执行需要的操作这一章我们重点研究第一步,如何使用jQuery选取元素以及对选取的结果进行“各种筛选”以满足我们的需求. ...

  7. Jquery 系列(2) 选择元素

    Jquery基础学习 jQuery利用css选择符的能力,能够在DOM中快捷而轻松地获取元素. 主要内容如下: 介绍DOM树 如何通过CSS选择符在页中查找元素 扩展jQuery标准的CSS选择符 选 ...

  8. 【 D3.js 入门系列 --- 2 】 如何使用数据和选择元素

    接着上一讲的内容,这次讨论如何选择元素和使用数据.    现在页面中有三行文字,代码为: <p>Hello World 1</p> <p>Hello World 2 ...

  9. D3.js 其他选择元素方法

    在上一节中,已经讲解了 select 和 selectAll,以及选择集的概念.本节具体讲解这两个函数的用法. 假设在 body 中有三个段落元素: <p>Apple</p> ...

随机推荐

  1. CSS(7)--- 通俗讲解清除浮动

    CSS(7)--- 通俗讲解清除浮动 上一篇讲了CSS浮动 博客地址:CSS(6)---通俗讲解浮动(float) 一.理解清除浮动 1.为什么要清除浮动 我们前面说过,浮动本质是用来做一些文字混排效 ...

  2. # & 等特殊字符会导致传参失败

    # & 等特殊字符会导致 post 传参失败 处理方法使用 encodeURIComponent 将字符串转化一下 实例 // toUpperCase() 转化为大写字母 var cateco ...

  3. poj 1001 求高精度幂(Java, BigDecimal, pow, hasNext, stripTrailingZeros, toPlainString)

    求高精度幂 Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 180325   Accepted: 43460 Descripti ...

  4. spark thriftserver

    spark可以作为一个分布式的查询引擎,用户通过JDBC的形式无需写任何代码,写写sql就可以实现查询啦,spark thriftserver的实现也是相当于hiveserver2的方式,并且在测试时 ...

  5. bash6——循环

    for fruit in apple orange pear #写死 do each ${fruit}s done fruits="apple orange pear" #输入变量 ...

  6. 软件测试的原则,软件测试计划:5W1H

    1.测试应该尽早介入.        2.所有的测试都应追溯到用户需求.        3.程序员应该避免检查自己的程序.除了单元测试.因为程序员对于自己的作品,思维具有局限性.无法保证测试质量.交给 ...

  7. [Part 4] 在Windows 10上源码编译PCL 1.8.1支持VTK和QT,可视化三维点云

    本文首发于个人博客https://kezunlin.me/post/2d809f92/,欢迎阅读! Part-4: Compile pcl with vtk qt5 support from sour ...

  8. 国内开源C# WPF控件库Panuon.UI.Silver强力推荐

    国内优秀的WPF开源控件库,Panuon.UI的优化版本.一个漂亮的.使用样式与附加属性的WPF UI控件库,值得向大家推荐使用与学习. 今天站长(Dotnet9,站长网址:https://dotne ...

  9. python numpy学习

    以下代码来源于本博文作者观看大神视频并纯手敲. 目录 numpy的属性 创建array numpy的运算1 随机数生成以及矩阵的运算2 numpy的索引 array合并 array分割 numpy的浅 ...

  10. diff()函数的使用

    1.diff():返回略微迭代(lagged)的或滞后的不同(iterated diferences). > x<-cumsum(cumsum(1:10)) > x [1] 1 4 ...