对象搜索—索引与实例

一、索引与实例说明:

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介绍之七的更多相关文章

  1. Android无线测试之—UiAutomator UiSelector API介绍之一

    一. UiSelector类介绍: 1) UiSelector类说明: UiSelector代表一种搜索条件,可以在当前界面上查询和获取特定元素的句柄,当找到多余一个的匹配元素,则返回布局层次结构上第 ...

  2. Android无线测试之—UiAutomator UiSelector API介绍之六

    对象搜索—类名与包名 一.类名属性定位对象 返回值 API 描述 UiSelector calssName(String className) 完整类名匹配 UiSelector calssNameM ...

  3. Android无线测试之—UiAutomator UiSelector API介绍之五

    对象搜索—文本与描述 一.文本属性定位对象: 返回值 API 描述 UiSelector test(String text) 文本完全匹配 UiSelector testContains(String ...

  4. Android无线测试之—UiAutomator UiSelector API介绍之四

    四种匹配关系介绍 一.四种匹配关系介绍: 二.举例: 匹配字符串   0123456789 1.完全匹配: 0123456789 2.包含匹配: 45678.456.678 3.正则匹配: \d{10 ...

  5. Android无线测试之—UiAutomator UiSelector API介绍之八

    对象搜索—特殊属性.节点与资源ID 一.特殊属性定位对象相关API 返回值 API 描述 UiSelector checkableboolean val) 是否可选择,一般开关组件上具有checkab ...

  6. Android无线测试之—UiAutomator UiSelector API介绍之三

    节点关系介绍 每一个布局文件都是一个严格的层次结构布局文件,只有对层次结构非常的了解,才能更好的搜索定位我们需要的主键元素 一.XML文档节点关系介绍 备注:查看节点关系主要使用UiAutomatro ...

  7. Android无线测试之—UiAutomator UiSelector API介绍之二

    Android的布局与组件及组件属性介绍 一.布局: 1)线性布局:控价在线性方向上一次排列 2)表格布局:向表格一样有标准的行和列 3)相对布局:通过相对定位的方式让控件出现在布局的任何位置 4)帧 ...

  8. Android无线测试之—UiAutomator UiScrollable API介绍三

    获取列表子元素 一.相关API介绍 返回值 API 描述 UiObject getChildByDescription(UiSelector childPattern, String text, bo ...

  9. Android无线测试之—UiAutomator UiCollection API介绍

    UiCollection类介绍 一.UiCollection类说明 1)UiCollection类是UiObject类的子类,即UiObject类的所有方法都被UiCollection继承下来了,都可 ...

随机推荐

  1. Node.js meitulu图片批量下载爬虫1.04版

    //====================================================== // https://www.meitulu.com图片批量下载Node.js爬虫1. ...

  2. pip安装mysql报错 ld: library not found for -lssl

    ld: library not found for -lssl clang: error: linker command failed with exit code (use -v to see in ...

  3. vue手机端横屏竖屏切换

    1.建一个空白的vue文件,添加上如下代码 data() { this.$router.go(-1) return {} }   2.在需要横屏竖屏切换的页面中加入如下代码: beforeMount( ...

  4. linux c中select使用技巧——计时器(转)

    通过本文你会了解到: 1. select()原型及参数说明 2. select()应用情景 3. select()注意事项 4. select()作定时器 原型 int select(int nfds ...

  5. linux socket读数据错误解释

    EINTR 表示某种阻塞的操作,被接收到的信号中断,造成的一种错误返回值. EAGAIN   从字面上来看,是提示再试一次.这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作( ...

  6. node.js 学习01

    PHP开发技术栈(LAMP) Linux  Apache  MySql  PHPnode.js 全栈开发技术栈(MEAN): MongoDB  Express  Angular  Node.js 现阶 ...

  7. springboot学习(九) 使用mybatis访问数据库

    1.添加maven依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId ...

  8. Vue + Webpack 坑爹锦集

    1.css中的转义符号 “\”  在编译[npm run build]的时候可能不通过.需要删修掉.这种情况可能会出现在svg中,如图

  9. IIS如何添加m3u8流媒体类型

    m3u8,mime类型填写: application/x-mpegURL. ts ,mime类型填写: video/MP2T

  10. FMDB(一)— 简单介绍

    在iOS开发过程中常常会用到数据库方面的操作,但是iOS原生的SQLite API使用起来并不十分友好,对于C语言基础较薄弱的朋友来说.使用起来可能会认为比較不便.于是,一些第三方的对SQLite A ...