Android UI 自动化测试之UiCollection

  1. UiCollection 类介绍
    (1)UiCollection类说明
    UiCollection是 UiObject 的子类
    UiCollection代表元素条目集合
    (2)UiCollection功能说明
    先按照一定的条件枚举出容器界面所有符合条件的子元素
    再从符合条件的元素再次通过一定的条件最终定位需要的组件
    (3)UiCollection使用场景
    一般使用容器类组件作为父类
    一般是用在需要找子类且子类由于某些因素不好定位
    获取某一类的数量,如获取联系人列表下当前视图下联系人的数量
  2. 从集合中查找对象
    (1)相关 API 说明
public UiObject getChildByDescription (UiSelector childPattern, String text)

public UiObject getChildByText (UiSelector childPattern, String text)

public UiObject getChildByInstance(UiSelector childPattern, String text)


    public void testDemo1() throws UiObjectNotFoundException{
        UiCollection collection=new UiCollection(new UiSelector().className("android.widget.ListView"));
        UiSelector childPattern=new UiSelector().className("android.widget.TextView");
        String text="Music";        
        UiObject music=collection.getChildByText(childPattern, text);
        music.click();              
    }

    public void testDesc() throws UiObjectNotFoundException{
        UiCollection collection=new UiCollection(new UiSelector().resourceId("com.android.dialer:id/top"));
        UiSelector childPattern=new UiSelector().className("android.widget.FrameLayout");
        String text="4";
        UiObject forth=collection.getChildByDescription(childPattern, text);
        forth.click();
    }

public void testInstance() throws UiObjectNotFoundException{
        UiCollection collection=new UiCollection(new UiSelector().resourceId("com.android.dialer:id/top"));
        UiSelector childPattern=new UiSelector().className("android.widget.FrameLayout");
        UiObject child1=collection.getChildByInstance(childPattern, 0);
        UiObject child0=collection.getChildByInstance(childPattern, 10);
        UiObject child00=collection.getChildByInstance(childPattern, 10);
        UiObject child8=collection.getChildByInstance(childPattern, 7);
        UiObject child6=collection.getChildByInstance(childPattern, 5);

        child1.click();
        sleep(500);
        child0.click();
        sleep(500);
        child00.click();
        sleep(500);
        child8.click();
        sleep(500);
        child6.click();
        sleep(500);

    }

在 UiSelector 选择器的查找条件中从子 UI 元素中搜索,递归寻找多有符合条件的自己.
再次用描述/文本/实例条件从前面搜索子集定位到想要的元素

参数:
childPattern UiSelector从子元素中的选择条件
Text、instance 从搜索中的元素中再次用描述/文本/实例条件搜索元素
返回值:UiObject
抛出异常: UiObjectNotFoundException
  1. 获取某种搜索条件组件的数量
    (1)相关 API说明
public int getChildCount (UiSelector childPattern)
public void testCount() throws UiObjectNotFoundException{
        UiCollection collection=new UiCollection(new UiSelector().index(0));
        int textViewCount=collection.getChildCount(new UiSelector().className("android.widget.TextView"));
        System.out.println("TextView Count:"+textViewCount);

        UiCollection tableCollection=new UiCollection(new UiSelector().className("android.widget.TableLayout"));
        int tableChildCount=tableCollection.getChildCount();
        System.out.println(tableChildCount);

    }

按照 UiSelector 查找条件递归查找所有符合条件的子子孙孙集合的数量

参数: 
childPattern 选择条件
返回值: int 符合条件的子孙孙集合的数量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值