手势操作

1、手势相关操作

2、相关API介绍

返回值 API 描述
boolean performMultiPointerGesture(PointerCoords[]... touches) 执行单手触控手势,可定义任意手势与形状
boolean performTwoPointerGesture(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps) 执行任意两个手指触控手势,模拟两个手指手势
boolean pinchIn(int percent, int steps) 手势操作,两点向内收缩
boolean pinchOut(int percent, int steps) 手势操作,两点向外扩张

3、API应用举例

package com.test.uiobject;

import java.io.File;

import android.graphics.Rect;
import android.view.KeyEvent; 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 Demo extends UiAutomatorTestCase { /**
* @param args
*/
public static void main(String[] args) {
String jarName,testClass,testName,androidId;
jarName="demo";
testClass="com.test.uiobject.Demo";
testName="testGesTure";
androidId="1";
new UiAutomatorHelper(jarName,testClass,testName,androidId); } public void testGesTure() throws UiObjectNotFoundException{
//返回home页
UiDevice.getInstance().pressHome();
sleep(2000); //打开浏览器
UiObject browser=new UiObject(new UiSelector().text("Browser"));
browser.click();
sleep(2000); //将光标移动到URL输入框行尾,点击backspace键删除里面的URL
UiObject editText=new UiObject(new UiSelector().className("android.widget.EditText"));
editText.click();
sleep(1000);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_MOVE_END);
UiObject url=new UiObject(new UiSelector().text("Search or type URL"));
while(!url.exists()){
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_DEL);
}
sleep(2000); //输入www.baidu.com 点击enter打开百度首页
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_B);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_I);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_D);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_U);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_C);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_O);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_M);
sleep(500);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_ENTER);
sleep(10000); //截屏,保存
UiDevice.getInstance().takeScreenshot(new File("sdcard/image1.png"));
sleep(2000); //进入图片所在的位置
UiDevice.getInstance().pressHome();
sleep(2000);
UiObject apps=new UiObject(new UiSelector().descriptionContains("Apps"));
apps.clickAndWaitForNewWindow();
UiObject fileManager=new UiObject(new UiSelector().text("File Manager"));
fileManager.clickAndWaitForNewWindow();
UiObject listView=new UiObject(new UiSelector().text("image1.png"));
listView.clickAndWaitForNewWindow(); //放大缩小图片
UiObject image=new UiObject(new UiSelector().resourceId("com.android.gallery:id/image"));
image.pinchIn(80, 50);
image.pinchOut(80, 50);
} }

Demo.java

Android无线测试之—UiAutomator UiObject API介绍六的更多相关文章

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

    UiObject类介绍 一.UiObject类介绍 UiObject代表一个UI元素,通过UiSelector查找跳进创建一个UiObject实例,找到这个实例以后可以对这个实例进行各类操作 二.Ui ...

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

    向前与向后滚动API 一.向前与向后滚动相关API 返回值 API 描述 boolean scrollBackward(int steps) 自动以步长向后滑动 boolean scrollBackw ...

  3. Android无线测试之—UiAutomator UiObject API介绍七

    判断对象是否存在 1.判断对象是否存在相关API 返回值 API 描述 boolean waitForExists(long timeout) 等待对象出现 boolean waitUntilGone ...

  4. Android无线测试之—UiAutomator UiObject API介绍五

    获取对象属性与属性的判断 1.获取对象属性相关API 返回值 API 说明 Rect getBounds() 获取对象矩形坐标,矩形左上角坐标与右下角坐标 int getChildCount() 获得 ...

  5. Android无线测试之—UiAutomator UiObject API介绍四

    输入文本与清除文本 一.输入文本与清除文本相关API 返回值 API 描述 boolean setText(String test) 在对象中输入文本 void clearTextField() 清除 ...

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

    拖拽与滑动 一.拖拽与滑动的示意图 二.拖拽与滑动相关的API 返回值 API 描述 boolean dragTo(UiObject destObj, int setps) 拖拽对象到另一个对象位置上 ...

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

    点击与长按 一.组件区域位置关系 Rect 对象代表一个矩形区域 [Left,Top] [Right,Bottom] 二.点击与长按API 返回值 API 描述 boolean click() 点击对 ...

  8. Android无线测试之—UiAutomator UiDevice API介绍六

    一.灭屏和唤醒屏幕相关知识: 1)灭屏:按电源键将屏幕熄灭 2)唤醒屏幕:在灭屏状态下按电源键唤醒屏幕 二.灭屏与唤屏相关的API: 返回值 方法名 描述 void wakeUp() 模拟按电源键,如 ...

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

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

随机推荐

  1. 02-spring学习-配置bean

    在spring的IOC容器中配置Bean 一,在xml中通过bean节点来配置bean: class:bean的类名,通过反射的方式在IOC容器中创建Bean,所以要求bean中必须有无参的构造器 i ...

  2. centos7 install flash player

    1.在 https://get.adobe.com/cn/flashplayer/ 上选择需要下载版本---> ( YUM,适用于Linux (YUM) ); 2.进入root权限后,进入你的下 ...

  3. Struts 第一个Hello页面

    在工程目录的src下新建 struts.xml   <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...

  4. echart初体验 动态加载数据

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  5. 区别原生chrome 和以chrome为内核的360浏览器

    function isChrome360() { if( navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ) { var des ...

  6. Atitit.sql where条件表达式的原理  attilax概括

    Atitit.sql where条件表达式的原理  attilax概括 1. 数据查询接口sql api标准化1 2. Sql接口的问题2 2.1. 虽然sql是结构化的dsl,但是任然是编程语言类型 ...

  7. vivado设计三:一步一步生成自己的自定义IP核

    开发环境:xp  vivado2013.4 基于AXI-Lite的用户自定义IP核设计 这里以用户自定义led_ip为例: 1.建立工程 和设计一过程一样,见vivado设计一http://blog. ...

  8. wxpy学习

    准备工作 安装 pip install -U wxpy -i "https://pypi.doubanio.com/simple/" 通过python脚本来发送消息给好友 from ...

  9. HTTP Range header

    http://stackoverflow.com/questions/3303029/http-range-header *************************** 58 down vot ...

  10. ORACLE / PLSQL 插入或更新数据的几种方式

    第一种,直接用values 插入 ---日期需要用TO_DATE操作 INSERT INTO EMP (EMPNO,ENAME ,JOB,MGR, HIREDATE , SAL ,COMM, DEPT ...