Android UI 自动化测试之UiObject
来源:互联网 发布:免费时时彩网站源码 编辑:程序博客网 时间:2024/06/05 15:55
- UiObject 类介绍
代表一个组件对象,对象有许多模拟实际操作手机的方法与属性 - 点击与长按对象
(1)组件区域位置关系
(2)点击长按相关 api
public void testClick() throws UiObjectNotFoundException{ UiObject clock=new UiObject(new UiSelector() .resourceId("com.android.deskclock:id/analog_appwidget")); //clock.click(); //clock.clickAndWaitForNewWindow();// clock.clickBottomRight();// sleep(3000);// UiDevice.getInstance().pressBack();// sleep(1000);// clock.clickTopLeft();// sleep(3000);// UiDevice.getInstance().pressBack();// sleep(1000); //longclick //clock.longClick(); UiDevice.getInstance().swipe(533, 612, 535, 615, 500); }
- 拖拽与滑动文本
(1)拖动组件示意图
(2)拖拽文本相关 api
public void testDrag() throws UiObjectNotFoundException{// UiObject object1=new UiObject(new UiSelector().text("联系人"));// UiObject object2=new UiObject(new UiSelector().text("图库"));// //object1.dragTo(350,1704-500, 10);// //object1.dragTo(object2, 30);// object1.swipeUp(5); UiObject recent=new UiObject(new UiSelector() .resourceId("com.android.systemui:id/app_thumbnail_image")); recent.swipeLeft(10); }
- 输入文本与清除文本
(1)输入文本相关 API
public void testSetText() throws UiObjectNotFoundException{// UiObject edit=new UiObject(new UiSelector()// .resourceId("com.android.mms:id/embedded_text_editor"));// // edit.setText("qwertyuiop");// sleep(2000);// edit.clearTextField(); //接收者 UiObject r=new UiObject(new UiSelector() .resourceId("com.android.mms:id/recipients_editor")); UiObject w=new UiObject(new UiSelector().text("接收者")); r.setText("kkkkkkkkkkkkk"); //将光标移动到行尾,使用backspace进行删除 UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_MOVE_END); while(!w.exists()){ UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_DEL); } //将光标移动到行首,使用delete键来删除 }
(2)输入文本与清除文本实现步骤说明
输入文本:清除文本—输入文本
清除文本:长按一键删除
5. 获取对象的属性与属性的判断
(1)获取对象的属性
public void testGet() throws UiObjectNotFoundException{ UiObject r=new UiObject(new UiSelector() .resourceId("com.android.mms:id/recipients_editor")); String rec=r.getText(); System.out.println("HINT:"+rec); System.out.println("CLASS:"+r.getClassName()); System.out.println("PACKAGE_Name:"+r.getPackageName()); System.out.println("PACKAGE_Name:"+r.getPackageName()); System.out.println("DESC:"+r.getContentDescription()); System.out.println("RECT:"+r.getBounds().left); assertEquals("接收者", rec); }
(2)获取父类与子类节点
public void testNode() throws UiObjectNotFoundException{ UiObject down=new UiObject(new UiSelector() .resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item") .index(3));// UiObject download=down.getChild(new UiSelector()// .resourceId("com.cyanogenmod.filemanager:id/navigation_view_item_name"));// // download.click(); UiObject music=down.getFromParent(new UiSelector() .resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").index(5)); music.click(); }
(3)属性的判断
public void testIs() throws UiObjectNotFoundException{ UiObject wlan=new UiObject(new UiSelector() .resourceId("com.android.settings:id/switchWidget")); if(!wlan.isChecked()){ wlan.click(); } }
- 手势的操作
(1) 手势相关操作
(2)手势相关操作 API
public void testGesture() throws UiObjectNotFoundException{ UiObject object=new UiObject(new UiSelector() .resourceId("com.android.gallery3d:id/photopage_bottom_controls")); //object.pinchIn(80, 20); //object.pinchOut(80, 20); Point startPoint1, startPoint2, endPoint1, endPoint2; startPoint1=new Point(); startPoint2=new Point(); endPoint1=new Point(); endPoint2=new Point(); startPoint1.x=157;startPoint1.y=183; startPoint2.x=122;startPoint2.y=455; endPoint1.x=948;endPoint1.y=195; endPoint2.x=930;endPoint2.y=493; object.performTwoPointerGesture(startPoint1, startPoint2, endPoint1, endPoint2, 50);}
- 判断对象是否存在
相关 API
public void testExist() throws UiObjectNotFoundException{ UiObject l=new UiObject(new UiSelector().text("联系人")); if(l.exists()){ l.click(); } UiObject create=new UiObject(new UiSelector().text("创建新联系人")); if(create.waitForExists(5000)){ System.out.println("没有任何联系人,需要创建"); create.click(); //创建步骤。。。。 } }
阅读全文
0 0
- Android UI 自动化测试之UiObject
- Android自动化测试(UiAutomator)——UiObject
- android自动化测试工具【UiAutomator】——UiObject
- android自动化测试工具【UiAutomator】——UiObject
- Android UI 自动化测试之UiDevice
- Android UI 自动化测试之UiSelector
- Android UI 自动化测试之UiCollection
- Android UI自动化测试
- Android UI 自动化测试
- Android UI 自动化测试
- Android UI 自动化测试
- Android UI 自动化测试
- Android UI 自动化测试工具
- 总结Android UI 自动化测试
- Android UI自动化测试--Espresso
- Android自动化测试|UI Automatorviewer
- Android自动化测试 UI Automator
- android开发之Jenkins并行完成UI的自动化测试
- jQuery选择什么版本 1.x? 2.x? 3.x?
- obs-studio源码编译安装
- Android OOM出现常见原因及解决办法
- Spring MVC之@RequestBody, @ResponseBody 详解
- 深入理解HTTP协议
- Android UI 自动化测试之UiObject
- 多语言网站(如何实现网站的多语言版本?)
- 电脑作为服务器,安卓手机作为客户端,通过Socket传输图片
- [js]03css基础
- 我的第一篇博客
- 域服务篇 05. 用户 ❀ Windows Server 2016
- adb命令打开系统设置界面
- hdu1013 Digital Roots
- 将framework 发布到cocoapods