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选择元素的更多相关文章
- jQuery选择器对应的DOM API ——选择元素
英文原文:http://blog.garstasio.com/you-dont-need-jquery/selectors/愚人码头注: 原作者的写这文章的意图是让我们抛弃jQuery,You Don ...
- 抛弃jQuery:DOM API之选择元素
原文链接:http://blog.garstasio.com/you-dont-need-jquery/selectors/ 我的Blog:http://cabbit.me/you-dont-need ...
- Appium脚本(4) 使用uiautomator方法定位元素
from app.find_element.capability import driver from time import sleep # 使用uiautomator方法定位元素 accunt_i ...
- 【转】Uiautomator Api浅析
原文地址:http://blog.sina.com.cn/s/blog_ae2575ff01018b2o.html uiautomator api: http://android.toolib.net ...
- JQuery基础教程:选择元素(上)
jQuery最强大的特性之一就是它能够简化在DOM中选择元素的任务,DOM中的对象网络与家谱有几分类似,当我们提到网络中元素之间的关系时,会使用类似描述家庭关系的术语,比如父元素.子元素,等等.通过一 ...
- 第三章:JavaScript选择元素
我们使用jQuery时,很常用的套路是“两步”第一步:选取元素第二步:对选中的元素执行需要的操作这一章我们重点研究第一步,如何使用jQuery选取元素以及对选取的结果进行“各种筛选”以满足我们的需求. ...
- Jquery 系列(2) 选择元素
Jquery基础学习 jQuery利用css选择符的能力,能够在DOM中快捷而轻松地获取元素. 主要内容如下: 介绍DOM树 如何通过CSS选择符在页中查找元素 扩展jQuery标准的CSS选择符 选 ...
- 【 D3.js 入门系列 --- 2 】 如何使用数据和选择元素
接着上一讲的内容,这次讨论如何选择元素和使用数据. 现在页面中有三行文字,代码为: <p>Hello World 1</p> <p>Hello World 2 ...
- D3.js 其他选择元素方法
在上一节中,已经讲解了 select 和 selectAll,以及选择集的概念.本节具体讲解这两个函数的用法. 假设在 body 中有三个段落元素: <p>Apple</p> ...
随机推荐
- CSS(7)--- 通俗讲解清除浮动
CSS(7)--- 通俗讲解清除浮动 上一篇讲了CSS浮动 博客地址:CSS(6)---通俗讲解浮动(float) 一.理解清除浮动 1.为什么要清除浮动 我们前面说过,浮动本质是用来做一些文字混排效 ...
- # & 等特殊字符会导致传参失败
# & 等特殊字符会导致 post 传参失败 处理方法使用 encodeURIComponent 将字符串转化一下 实例 // toUpperCase() 转化为大写字母 var cateco ...
- poj 1001 求高精度幂(Java, BigDecimal, pow, hasNext, stripTrailingZeros, toPlainString)
求高精度幂 Time Limit: 500MS Memory Limit: 10000K Total Submissions: 180325 Accepted: 43460 Descripti ...
- spark thriftserver
spark可以作为一个分布式的查询引擎,用户通过JDBC的形式无需写任何代码,写写sql就可以实现查询啦,spark thriftserver的实现也是相当于hiveserver2的方式,并且在测试时 ...
- bash6——循环
for fruit in apple orange pear #写死 do each ${fruit}s done fruits="apple orange pear" #输入变量 ...
- 软件测试的原则,软件测试计划:5W1H
1.测试应该尽早介入. 2.所有的测试都应追溯到用户需求. 3.程序员应该避免检查自己的程序.除了单元测试.因为程序员对于自己的作品,思维具有局限性.无法保证测试质量.交给 ...
- [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 ...
- 国内开源C# WPF控件库Panuon.UI.Silver强力推荐
国内优秀的WPF开源控件库,Panuon.UI的优化版本.一个漂亮的.使用样式与附加属性的WPF UI控件库,值得向大家推荐使用与学习. 今天站长(Dotnet9,站长网址:https://dotne ...
- python numpy学习
以下代码来源于本博文作者观看大神视频并纯手敲. 目录 numpy的属性 创建array numpy的运算1 随机数生成以及矩阵的运算2 numpy的索引 array合并 array分割 numpy的浅 ...
- diff()函数的使用
1.diff():返回略微迭代(lagged)的或滞后的不同(iterated diferences). > x<-cumsum(cumsum(1:10)) > x [1] 1 4 ...