初探UiAutomator(二)

原创 2015年11月20日 14:51:22

本系类是我学习极客学院的测试类的学习笔记。

这次学习了UiDevice对象。

1、uidevice 获得实例的方法

UiDevice.getInstance();

getUiDevice();

推荐使用第一种方法,第二种方法在封装方法进行调用的时候会出现空指针的情况。

2、模拟按键

UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);

3、模拟拖动和滑动

drag和swipe

UiDevice.getInstance().drag(533, 1498, 1000, 1498, 40);
UiDevice.getInstance().swipe(533, 1498, 1000, 1498, 40);

4、屏幕操作

UiDevice.getInstance().setOrientationLeft();<span style="white-space:pre">	</span>//通过禁用传感器,设备向左旋转并且固定位置
UiDevice.getInstance().unfreezeRotation();<span style="white-space:pre">	</span>//重新启用传感器和允许物理旋转<span style="white-space:pre">	</span>
UiDevice.getInstance().isNaturalOrientation();<span style="white-space:pre">	</span>//检测设置是否处于默认旋转状态
UiDevice.getInstance().getDisplayRotation();<span style="white-space:pre">	</span>//返回当前的显示旋转
UiDevice.getInstance().freezeRotation();<span style="white-space:pre">	</span>//禁用传感器和冻结装置物理旋转在其当前的旋转状态

5、灭屏和唤醒

UiDevice.getInstance().sleep();
UiDevice.getInstance().wakeUp();

6、截图和等待空闲

UiDevice.getInstance().takeScreenshot(new File("/sdcard/123.png"));
UiDevice.getInstance().waitForIdle();

7、获得包名和开启通知栏

UiDevice.getInstance().getCurrentPackageName();<span style="white-space:pre">		</span>//获得当前界面的包名
UiDevice.getInstance().dumpWindowHierarchy("layout");<span style="white-space:pre">	</span>//获取当界面的布局文件
UiDevice.getInstance().openNotification();<span style="white-space:pre">		</span>//打开通知栏
UiDevice.getInstance().openQuickSettings();<span style="white-space:pre">		</span>//打开快速设置


8、一个小小的示例

亮屏->解锁->单击网址输入框->输入www.baidu.com->按回车键->旋转屏幕->截图

<span style="white-space:pre">	</span>public void testExample(){
		//亮屏->解锁->单击网址输入框->输入www.baidu.com->按回车键->旋转屏幕->截图
		try {
			//亮屏幕
			UiDevice.getInstance().sleep();
			UiDevice.getInstance().wakeUp();
			sleep(2000);
			//解锁
			UiDevice.getInstance().drag(533, 1498, 1000, 1498, 40);
			sleep(2000);
			//点击浏览器
			UiDevice.getInstance().click(923, 1798);
			sleep(2000);
			//点击输入框并删除
			UiDevice.getInstance().click(525, 158);
			UiDevice.getInstance().pressDelete();
			sleep(2000);
			//输入www.baidu.com
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_B);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_I);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_D);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_U);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_C);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_O);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_M);
			sleep(2000);
			//按下回车键
			UiDevice.getInstance().pressEnter();
			sleep(2000);
			//旋转屏幕
			UiDevice.getInstance().setOrientationLeft();
			sleep(2000);
			//截图
			UiDevice.getInstance().takeScreenshot(new File("/sdcard/123.png"));
			sleep(2000);		
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

9、使用UiAutomatorHelper快速测试


public class Text extends UiAutomatorTestCase {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String jarName, testClass, testName, androidId;
		jarName="Dome1";<span style="white-space:pre">		</span>//测试名
		testClass="com.jky.Text";<span style="white-space:pre">	</span>//包名+类名
		testName="testDome";<span style="white-space:pre">		</span>//需要测试的方法名
		androidId="6";<span style="white-space:pre">			</span>//id号
		new UiAutomatorHelper(jarName, testClass, testName, androidId);
	}

	public void testDome(){
		UiDevice.getInstance().pressHome();
	}
}



点击UiAutomatorHelper下载



版权声明: 举报

相关文章推荐

初探UiAutomator(三)

本系类是我学习极客学院的测试类的学习笔记。 这次学习UiObject对象。 一定要注意,工程一定要使用utf-8编码格式编码,否则会中文会找不到。 1、点击和长按 2、拖拽和滑...

Android UiAutomator 初试。

今天自己看了一下google的UiAutomator,尝试写了一个简单的例子,进行记录。 用eclipse创建一个新的java工程,添加引用 jUnit,然后添加相应的sdk/platforms下的...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

scala 初探(二)

一般地 scala val对应于C++ const Scala有一些 比较灵活的使用方法 如所谓 前缀方法及后缀方法 实际就是 方法 没有参数及只有一个参数 当这种情况下 可以将该方法...

AngularJS 初探(二)

本文代码来自 https://www.gitbook.com/book/checkcheckzz/angularjs-learning-notes/details 这个文章对于angularjs的讨论...

JavaScript初探(二)

windows对象: JavaScript编程中,出了用DOM模型访问HTML页面中的内容,有时还需要访问和操作除HTML本身的一些信息,比如浏览器的窗口大小、HTTP网址等,这些信息通过windo...

opencv初探(二)

矩阵数据的存取

Pandas 初探(二)

对于pandas DataFrame对象的理解可以参看numpy.ndarray的一些细节, 仅仅是添加了一些方便的接口。 可以直接使用[]进行行切片访问,对于列中的情况,使用loc[],一般也是...

JavaScript初探二

函数参数传递- 函数类似,只有单个变量 固定不变的部分代码: Document #div1 { width: 200px; heigh...

Oracle初探(二)

基础查询 --1.查询部门编号为30的职务种类(不重复) select job from emp where deptno=30;--重复 select distinct job from emp...

Scala初探(二)

5. 单例模式 class Marker(val color: String){ //类中的任何代码段作为构造函数的一部分 println("Creating " + this) overri...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)