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

时间: 2024-10-12 19:17:52

Android自动化测试Uiautomator--UiScrollable接口简介的相关文章

Android自动化测试-UiAutomator环境搭建

Android自动化测试-UiAutomator环境搭建 一.环境准备 1. 安装android sdk,并配置环境变量 2. 安装android studio,国内访问官网受限,如果下载不到,可以到我的百度云盘下载: https://pan.baidu.com/s/1bpq5wK3 此云盘中有uiautomator2所依赖的jar包,可以同时下载 二.新建Android Studio工程 新建一个project,输入application name,下一步, 默认选择,下一步, 选择 empt

android自动化测试-UiAutomator使用入门

为什么选择UiAutomator 作为亲儿子UiAutomator随Android同步推出,随Android版本同步升级,经过多次迭代目前已经相当稳定. 相比MonkeyRunner,UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试. UIAutomator不需要测试人员了解代码实现细节,属于功能和黑盒测试.测试代码结构简单,编写容易,学习曲线低.基于JAVA,一次编译可以运行于所有Android设

【转】Android自动化测试(UiAutomator)简要介绍

一.一个BUG引发的问题 如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”.这个问题我们如何验证呢?我想,最好的方式应该是自动化测试.    那么,自动化测试可以完成哪些任务呢?    简单的说,那些重复性的测试工作,都可以交给自动化完成:        1.设置手机的语言        2.添加.删除.收藏联系人        3.拨号.挂断        4.甚至发送短信.收藏短信 如果需要上面的功能,那么就开始自动化之旅吧. 二.Android自动化测试简单介绍 Androi

Android自动化测试(UiAutomator)

一.一个BUG引发的问题 如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”.这个问题我们如何验证呢?我想,最好的方式应该是自动化测试.    那么,自动化测试可以完成哪些任务呢?    简单的说,那些重复性的测试工作,都可以交给自动化完成:        1.设置手机的语言         2.添加.删除.收藏联系人         3.拨号.挂断         4.甚至发送短信.收藏短信 如果需要上面的功能,那么就开始自动化之旅吧. 二.Android自动化测试简单介绍 And

Android 自动化测试(4)<uiautomator> 单元测试

在之前的系列文章中,我介绍过用java来实现过 Android 自动化测试(1)如何安装和卸载一个应用(java).Android 自动化测试(2)根据ID查找对象(java):然后又介绍了用python语言来实现Android 自动化测试(3) 根据ID查找对象&touch&type (python).还说过后续要写点关于单元测试和代码覆盖测试的文章.今天要介绍的就是单元测试. 1. 概要 做过java单元测试的同学,使用Android的单元测试比较简单,参见 如何进行Android单元

Android自动化测试课程大纲

Native App与Web App的自动化测试方法 Android自动化测试常用工具介绍 Robotium Android的Instrumentation机制 Robotium环境搭建及基本使用方法 Robotium基本API的使用 基于Robotium搭建测试框架 UIAutomator UIAutomator架构与原理介绍 UIAutomator环境搭建及基本使用方法 UIAutomator基本API的使用(案例演练) UiDevice UiSelector UiObject UiColl

解放双手——Android自动化测试

解放程序猿宝贵的右手(或者是左手) --Android自动化测试技巧 Google大神镇楼 : http://developer.android.com/tools/testing-support-library/index.html#UIAutomator 前言: 觉得文章太长不想往后翻的朋友,你们会后悔的,当然,你也可以选择先看后面的,你会觉得很爽,但是相信我,你还是会回来看前面的.那么,还是慢慢往后翻吧. 导入: 人们懒的走路,才创造了汽车: 人们懒的爬楼,才创造了电梯: 人们懒的扫地,才

Android自动化测试框架分析

摘自<深入理解Android自动化测试>作者:许奔 1. 稳定性好:尽可能少地通过控件index进行节点判断. 2.可移植性好:尽可能少地通过坐标进行控件定位. monkey.monkeyrunner通过坐标进行控件定位. 3. 支持多应用交互:框架必须支持跨应用. instrumentation不支持跨应用. 4. 运行效率高:窗口跳转监控和窗口定位要准确. monkey.monkeyrunner窗口跳转监控和窗口定位不准确. 5. 容易上手:框架接口要容易理解和掌握. monkeyrunn

Android 自动化测试框架

Android常用的自动化测试工具框架: Monkey,MonkeyRunner,UIAutomator,Robotium,Appium,Monkey Talk 但是这些工具框架都有什么关系呢,先通过一张图来了解一下吧.(图是某博客上借过来的) 是不是一脸懵逼,不知道这是什么鬼.下面详细了解一下. 一.Monkey 是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器中或者实际设备中,它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用

Android 自动化测试--要点概括

Android自动化测试 :Top-Down的要点概括 一.测试方法 1.功能型测试  monkeyrunner.uiautomator 2.随机事件测试  monkey 二.发现问题 3.监测内存是否有泄露     工具 4.监测是否有ANR            日志 (/data/anr) 5.监测是否有Crash         日志(/data/system/dropbox) 6.监测CPU是否有问题    日志(/data/anr) 7.监测流量是否有问题     工具 三.解决问题