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

时间: 2024-11-08 11:10:27

Android无线测试之—UiAutomator UiSelector API介绍之七的相关文章

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

四种匹配关系介绍 一.四种匹配关系介绍: 二.举例: 匹配字符串   0123456789 1.完全匹配: 0123456789 2.包含匹配: 45678.456.678 3.正则匹配: \d{10} 4.起始匹配: 012.01234.01234567 三.程序举例: package com.testuiselector; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiO

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

四种匹配关系介绍 一.四种匹配关系介绍: 二.举例: 匹配字符串   0123456789 1.完全匹配: 0123456789 2.包含匹配: 45678.456.678 3.正则匹配: \d{10} 4.起始匹配: 012.01234.01234567 三.程序举例: package com.testuiselector; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiO

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

对象搜索—类名与包名 一.类名属性定位对象 返回值 API 描述 UiSelector calssName(String className) 完整类名匹配 UiSelector calssNameMatches(String regex) 正则类名匹配 搜索条件的快速书写方式 1)组件名字.class.getName方式 2)完整类名方式:android.widget.LinearLayout 3)正则方式 4)常量方式 二.包名属性定位对象 返回值 API 描述 UiSelector pac

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

对象搜索—文本与描述 一.文本属性定位对象: 返回值 API 描述 UiSelector test(String text) 文本完全匹配 UiSelector testContains(String text) 文本包含匹配 UiSelector textMatches(String regex) 文本正则匹配 UiSelector textStartsWith(String text) 文本起始匹配 二.描述属性定位对象: 返回值 API 描述 UiSelector description(

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

对象搜索—特殊属性.节点与资源ID 一.特殊属性定位对象相关API 返回值 API 描述 UiSelector checkableboolean val) 是否可选择,一般开关组件上具有checkable属性 UiSelector checked(boolean val) 是否被选中,已经被选中则为true,没被选中为false UiSelector clickable(boolean val) 是否可点击,几乎所有组件都有clickable属性 UiSelector enabled(boole

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

Android的布局与组件及组件属性介绍 一.布局: 1)线性布局:控价在线性方向上一次排列 2)表格布局:向表格一样有标准的行和列 3)相对布局:通过相对定位的方式让控件出现在布局的任何位置 4)帧布局:子类会出现在布局的左上角 5)网格布局:类似于表格布局,但比表格布局更灵活,可以比较随意的调整其中的分区模块 6)绝对布局:使用绝对坐标来堆放组件 二.常用组件: 三.常Android组件属性介绍 属性值 值类型 例子 index int 0 instance int 5 class Stri

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

获取列表子元素 一.相关API介绍 返回值 API 描述 UiObject getChildByDescription(UiSelector childPattern, String text, boolean allowScrollSearch) 是否允许滚动查看获取具备UiSelector条件元素集合后再以文本描述条件查找对象 UiObject getChildByDescription(UiSelector childPattern, String text) 默认滚动获取具备UiSele

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

UiCollection类介绍 一.UiCollection类说明 1)UiCollection类是UiObject类的子类,即UiObject类的所有方法都被UiCollection继承下来了,都可以使用 2)UiCollection代表元素条目的集合 二.UiCollection功能说明 1)先按照一定的条件枚举出容器类界面所有符合条件的子元素 2)再从符合条件的元素的和集中再次通过一定的条件最终定位需要的组件 三.UiCollection使用场景 1)一般使用容器类组件作为父类 2)一般用

Android无线测试之—UiAutomator UiObject API介绍六

手势操作 1.手势相关操作 2.相关API介绍 返回值 API 描述 boolean performMultiPointerGesture(PointerCoords[]... touches) 执行单手触控手势,可定义任意手势与形状 boolean performTwoPointerGesture(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps) 执行任意两个手指触控手势,模拟两