Android自动化测试Uiautomator--UiScrollable接口简介

UiScrollable主要包括以下几个方面的方法:

  1.快速滚动

  2.获取列表子元素

  3.获取与设置最大滚动次数常量值

  4.滑动区域校准常量设置与获取

  5.先前与向后滚动

  6.滚动到某个对象

  7.设置滚动方向

它的主要继承关系如下图:

  

使用时的基本格式如下:

  UiScrollable 对象名 = new UiScrollable(new UiSelector().选择对象条件)

  对象名.操作函数

快速滚动方面的方法:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.flingToEnd()2; //只滑动两次快速滑动到结尾

  1.public boolean flingBackward() 以步长为5快速向后滑动

  2.public boolena flingForward() 以步长为5快速向前滑动

  3.public boolean flingToBeginning(int maxSwipes) 自定义扫动次数以步长为5快速滑动到开启

  4.public boolean flingToEnd(int maxSwipes) 自定义扫动次数以步长为5快速滑动到结束

获取列表子元素:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true)); //获取滚动元素对象

  UiObject chinaMobileObject = listScrollable.getChildByDescription(new UiSelector().className("android.widget.TextView"), "10086", false);

  chinaMobileObject.clickAndWaitForNewWindow(); //点击等待新界面出现

  1.public UiObject getChildByDescription(UiSelector childPattern, String text, boolean allowScrollSearch)

    是否允许滚动查找获取具备UiSelector条件与文本描述条件的UiObject对象

  2.public UiObject getChildByDescription(UiSelector childPattern, String text)

    默认滚动获取具备UiSelector条件与文本描述条件的UiObject对象

  3.public UiObject getChildByInstance(UiSelector childPattern, int instance)

    获取具备UiSelector条件的子集,再从子集中按照实际筛选想要的元素(不滚动)

  4.public getChildByText(UiSelector childPattern, String text, boolean allowScrollSearch)

    是否允许滚动获取具备UiSelector条件与文本条件的UiObject对象

  5.public getChildByText(UiSelector childPattern, String text)

    默认滚动获取具备UiSelector条件与文本条件的UiObject对象

获取与设置最大滚动次数常量值的方法:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.setMaxSearchSwipes(10);

  listScrollable.scrollTextIntoView("About tablet"); 

  1.public int getMaxSearchSwipes()

    获取执行搜索滑动过程中的最大滑动次数,默认常量为30

  2.public UiScrollable setMaxSearchSwipes(int swipes)

    设置最大可扫动次数

滑动区域校准常量设置与获取的方法:

  校准常量指的是:滑动操作坐标时的偏移量,用来取偏移比例。

  举例:

  int swipeAreaAdjuct  = (int)(rect.height() *getSwipeDeadZonePercentage()); //计算坐标偏移量

  downX = rect.centerX();

  downY = rect.top + swipeAreaAdjust;

  upX = rect.centerX();

  upY = rect.bottom - swipeAreaAdjust;

  1.public double getSwipeDeadZonePercentage()

    默认常量值为0.1,10%

  2.public UiScrollable setSwipeDeadZonePercentage(double swipeDeadZonePercentage)

    设置一个部件的大小,在滑动时,视为无接触区的百分比。

向前与向后滚动方面的方法:

  举例:

  UiScrollable listScrollable =  new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.scrollBackward(10); //向后滚动

  1.public boolean scrollBackward(int steps)

    自定义步长向后滑动

  2.public boolean scrollBackward()

    以默认步长55向后滑动

  3.public boolean scrollDescriptionIntoView(String text)

    滑动到描述所在位置,并且尽量让它居于屏幕中央

  4.public boolean scrollForward()

    以默认步长55向前滚动

  5.public boolean scrollForward(int steps)

    自定义步长向前滚动

滚动到某个对象方面的方法:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.scrollDescriptionIntoView("About tablet");

  1.public boolean scrollIntoView(UiSelector)

    滚动到条件元素所在的位置,并且尽量让其居于屏幕中央

  2.public boolean scrollIntoView(UiObject obj)

    滚动到对象所在位置,并且尽量让其居于屏幕中央

  3.public boolean scrollTextIntoView(String text)

    滚动到文本对象所在位置,并且尽量让其居于屏幕中央

  4.public boolean scrollToBeginning(int maxSwipes)

    滚动到开始位置

  5.public boolean scrollToBeginning(int masSwipes, int steps)

    自定义扫动距离与步长,滚动到开始位置

  6.public boolean scrollToEnd(int maxSwipes, int steps)

    自定义扫动距离与步长,滚动到结束位置

  7.public boolean scrollToEnd(int maxSwipes)

    自定义扫动距离,滚动到结束位置

设置滚动方向的方法:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.setAsHorizontalList(); // 设置横向滚动

  listScrollable.scrollForward(); //往前滚动一次

  listScrollable.setAsVerticalList(); //设置纵向滚动

  listScrollable.scrollTextIntoView("My favourite");

  1.public UiScrollable setAsHorizontalList()

    设置滚动方向为水平滚动

  2.public UiScrollable setAsVerticalList()

    设置滚动方向为纵向滚动

以上博客参考自:

http://wenku.baidu.com/view/90ea92e3240c844769eaeec5.html?re=view

原文地址:https://www.cnblogs.com/yajing-zh/p/4506131.html