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> ...
随机推荐
- MD5 加盐加密
一.概述 MD5(Message Digest Algorithm 5),是一种散列算法,是不可逆的,即通过md5加密之后没办法得到原文,没有解密算法. 在一般的项目中都会有登录注册功能,最简单的, ...
- vue项目iframe的传值问题
前言 项目需要,我需要引入一个已经封装好的浏览器插件.插件只能以html的方式调用, 所以.我把插件的使用封装了一个html页面.vue项目则利用iframe的方式引入. 到这里我就遇到了一个问题,那 ...
- 深入理解Kafka必知必会(2)
Kafka目前有哪些内部topic,它们都有什么特征?各自的作用又是什么? __consumer_offsets:作用是保存 Kafka 消费者的位移信息 __transaction_state:用来 ...
- python day 1 homework 1
作业一要求: 1 输入用户名密码 2 认证成功后显示欢迎信息 3 输错三次后锁定 import os #生成保存用户信息的字典 d_userinfo = {} #保存用户登录字典 input_logi ...
- systemd概念和运行机制
systemd概念 核心概念:单元 依赖关系 systemd事务 启动目标和运行级别 单元 早期CentOS版本中的服务管理脚本在CentOS7中被服务但源文件替换.系统初始化需要启动后台服务,需要完 ...
- 7. SOFAJRaft源码分析—如何实现一个轻量级的对象池?
前言 我在看SOFAJRaft的源码的时候看到了使用了对象池的技术,看了一下感觉要吃透的话还是要新开一篇文章来讲,内容也比较充实,大家也可以学到之后运用到实际的项目中去. 这里我使用Recyclabl ...
- Docker从入门到掉坑(三):容器太多,操作好麻烦
前边的两篇文章里面,我们讲解了基于docker来部署基础的SpringBoot容器,如果阅读本文之前没有相关基础的话,可以回看之前的教程. Docker 从入门到掉坑 Docker从入门到掉坑(二): ...
- 纯css实现tab导航
仿照这个 实现了一个纯css的导航功能 html <div class="main"> <div id="contain1">列表一内容 ...
- 【集合系列】- 深入浅出的分析 WeakHashMap
一.摘要 在集合系列的第一章,咱们了解到,Map 的实现类有 HashMap.LinkedHashMap.TreeMap.IdentityHashMap.WeakHashMap.Hashtable.P ...
- Android Saripaar 注解详解
写这篇文章的原因 在移动端一般很少使用复杂的表单,一般针对于属性的更改都会打开一个新的页面进行更改.虽然不多,但是也会有.如果一个页面要输入的内容包括姓名.地址.邮箱.手机号等,对各个属性的验证会非常 ...