Android无线测试之—UiAutomator UiSelector API介绍之七
对象搜索—索引与实例
一、索引与实例说明:
1)index:在同一级中的编号,在兄弟类中组件的编号,index从0开始
2)instance:同一个布局中同一类组件的编号,instance从0开始
二、索引与实例属性定位对象
| 返回值 | API | 描述 |
| UiSelector | index(int index) | 索引 |
| UiSelector | instance(int instance) | 实例 |
三、API应用举例
package com.testuiselector; import android.view.View; import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class Demo1 extends UiAutomatorTestCase { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String jarName, testClass, testName, androidId;
jarName="demo1";
testClass="com.testuiselector.Demo1";
testName="testPackage";
androidId="1";
new UiAutomatorHelper(jarName, testClass, testName, androidId);
} public void testClass() throws UiObjectNotFoundException{
UiDevice.getInstance().pressHome();
sleep(1000); //完全匹配
UiSelector l1=new UiSelector().className("android.view.View").instance(3);
UiObject clock1=new UiObject(l1);
clock1.click();
sleep(1000); UiDevice.getInstance().pressBack();
sleep(1000); //正则匹配
UiSelector l2=new UiSelector().classNameMatches(".*View").instance(4);
UiObject clock2=new UiObject(l2);
clock2.click();
sleep(1000); UiDevice.getInstance().pressBack();
sleep(1000); //class.getName()
UiSelector l3=new UiSelector().className(View.class.getName()).instance(3);
UiObject clock3=new UiObject(l3);
clock3.click();
sleep(1000); UiDevice.getInstance().pressBack(); } public void testPackage() throws UiObjectNotFoundException{ UiDevice.getInstance().pressHome();
sleep(1000); UiSelector dl1=new UiSelector().packageName("com.android.deskclock");
UiObject deskclock1=new UiObject(dl1);
deskclock1.click();
sleep(1000); UiDevice.getInstance().pressBack();
sleep(1000); UiSelector dl2=new UiSelector().packageNameMatches(".*deskclock");
UiObject deskclock2=new UiObject(dl2);
deskclock2.click(); } }
Demo1.java
Android无线测试之—UiAutomator UiSelector API介绍之七的更多相关文章
- Android无线测试之—UiAutomator UiSelector API介绍之一
一. UiSelector类介绍: 1) UiSelector类说明: UiSelector代表一种搜索条件,可以在当前界面上查询和获取特定元素的句柄,当找到多余一个的匹配元素,则返回布局层次结构上第 ...
- Android无线测试之—UiAutomator UiSelector API介绍之六
对象搜索—类名与包名 一.类名属性定位对象 返回值 API 描述 UiSelector calssName(String className) 完整类名匹配 UiSelector calssNameM ...
- Android无线测试之—UiAutomator UiSelector API介绍之五
对象搜索—文本与描述 一.文本属性定位对象: 返回值 API 描述 UiSelector test(String text) 文本完全匹配 UiSelector testContains(String ...
- Android无线测试之—UiAutomator UiSelector API介绍之四
四种匹配关系介绍 一.四种匹配关系介绍: 二.举例: 匹配字符串 0123456789 1.完全匹配: 0123456789 2.包含匹配: 45678.456.678 3.正则匹配: \d{10 ...
- Android无线测试之—UiAutomator UiSelector API介绍之八
对象搜索—特殊属性.节点与资源ID 一.特殊属性定位对象相关API 返回值 API 描述 UiSelector checkableboolean val) 是否可选择,一般开关组件上具有checkab ...
- Android无线测试之—UiAutomator UiSelector API介绍之三
节点关系介绍 每一个布局文件都是一个严格的层次结构布局文件,只有对层次结构非常的了解,才能更好的搜索定位我们需要的主键元素 一.XML文档节点关系介绍 备注:查看节点关系主要使用UiAutomatro ...
- Android无线测试之—UiAutomator UiSelector API介绍之二
Android的布局与组件及组件属性介绍 一.布局: 1)线性布局:控价在线性方向上一次排列 2)表格布局:向表格一样有标准的行和列 3)相对布局:通过相对定位的方式让控件出现在布局的任何位置 4)帧 ...
- Android无线测试之—UiAutomator UiScrollable API介绍三
获取列表子元素 一.相关API介绍 返回值 API 描述 UiObject getChildByDescription(UiSelector childPattern, String text, bo ...
- Android无线测试之—UiAutomator UiCollection API介绍
UiCollection类介绍 一.UiCollection类说明 1)UiCollection类是UiObject类的子类,即UiObject类的所有方法都被UiCollection继承下来了,都可 ...
随机推荐
- vue2 生命周期
转:https://segmentfault.com/a/1190000008570622 生命周期先上图 什么是生命周期 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载 ...
- 持续集成之Jenkins+Gitlab简介 [一]
转载:http://blog.csdn.net/abcdocker/article/details/53840449 持续集成概念 持续集成Continuous Integration 持续交付Con ...
- Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
http://www.jb51.net/article/38473.htm 首先启动命令行 1.在命令行运行:taskkill /f /im mysqld-nt.exe 下面的操作是操作mysql中b ...
- 微信小程序flex容器属性详解
flex容器属性详解 flex-direction决定元素的排列方向 flex-wrap决定元素如何换行 flex-flow 是 flex-direction 和flex-wrap的简写 justif ...
- LoadRunner+Java接口性能测试
想必各位小伙伴们会对LR还可以调用java感到好奇,之前我也这么一直认为LR只支持C语言.其实LR脚本支持的语言有:C.Java.Visual Basic.VbScript.JavaScript,只不 ...
- Spring事务的传播行为 @Transactional
Spring事务的传播行为http://blog.csdn.net/cuker919/article/details/5957209 在service类前加上@Transactional,声明这个se ...
- laravel框架查看执行过的sql语句
1.在routes.php中添加如下语句 Event::listen('illuminate.query', function($sql,$param) { file_put_contents ...
- ie6、ie7下JSON.parse JSON未定义的解决方法
解决方法一: var jsons = req.responseText; var s; if (typeof(JSON) == 'undefined'){ s = eval("(" ...
- 未能加载文件或程序集“WebGrease, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
方法一:在web.config的configuration接点中添加,最好是添加在configuration节点的最后 <runtime> <assemblyBinding xmln ...
- sqlserver获取当月、年的第一天和最后一天
-- 当月第一天select dateadd(month, datediff(month, 0, getdate()), 0) -- 当月最后一天(思路:下月的第一天减去一天)select datea ...