UiDevice新增API
来源:互联网 发布:java 百度地图api接口 编辑:程序博客网 时间:2024/06/14 17:54
InstrumentationRegistry API说明
UiDevices新增API
List<UiObject2>
findObjects(BySelector selector) 返回所有符合选择条件的对象 <R> R
wait(SearchCondition<R> condition, long timeout)
等待的条件得到满足示例代码如下:
package mqqzt.myuitest3;import android.app.Instrumentation;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.pm.ApplicationInfo;import android.content.pm.PackageManager;import android.content.pm.ResolveInfo;import android.os.Bundle;import android.os.Environment;import android.support.test.InstrumentationRegistry;import android.support.test.runner.AndroidJUnit4;import android.support.test.uiautomator.By;import android.support.test.uiautomator.UiDevice;import android.support.test.uiautomator.UiObject;import android.support.test.uiautomator.UiObject2;import android.support.test.uiautomator.UiObjectNotFoundException;import android.support.test.uiautomator.UiSelector;import android.support.test.uiautomator.Until;import android.widget.TextView;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.List;/** * Created by mqqzt-yang on 2015/11/22. */@RunWith(AndroidJUnit4.class)public class UiDeviceTest { UiDevice uiDevice; Instrumentation instrumentation; @Before public void setUp(){ uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); instrumentation = InstrumentationRegistry.getInstrumentation(); uiDevice.pressBack(); uiDevice.pressBack(); uiDevice.pressBack(); uiDevice.pressBack(); } @After public void tearDown(){ uiDevice.pressBack(); uiDevice.pressBack(); uiDevice.pressBack(); uiDevice.pressBack(); } @Test public void testInstrumentation(){ //获取运行Intrumentation命令时,传入的参数 Bundle bundle = InstrumentationRegistry.getArguments(); //把获取到的参数发送到测试结果中 instrumentation.sendStatus(888, bundle); Context curContext = InstrumentationRegistry.getContext(); Context tarContext = InstrumentationRegistry.getTargetContext(); PackageManager pm = curContext.getPackageManager(); Bundle contextBundle = new Bundle(); contextBundle.putString("CUR_CONTEXT", pm.getInstalledPackages(PackageManager.GET_ACTIVITIES).get(0).packageName); InstrumentationRegistry.registerInstance(instrumentation, contextBundle); Bundle b2 = InstrumentationRegistry.getArguments(); instrumentation.sendStatus(889, b2); } @Test public void testUiDeviceNewAPI() throws IOException, UiObjectNotFoundException { File file = new File(Environment.getExternalStorageDirectory() + File.separator + "uidump.xml"); if(file.exists()){ file.delete(); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } }else { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } OutputStream os = new FileOutputStream(file); uiDevice.dumpWindowHierarchy(os); uiDevice.executeShellCommand("am start -n com.android.settings/.Settings"); uiDevice.wait(Until.findObject(By.text("Display")), 20000); UiObject2 uiObject2 = uiDevice.findObject(By.text("Display")); uiObject2.click(); UiObject uiObject = uiDevice.findObject(new UiSelector().text("Wallpaper")); uiObject.clickAndWaitForNewWindow(); Bundle bundle = new Bundle(); List<UiObject2> list = uiDevice.findObjects(By.clazz(TextView.class)); for(UiObject2 uiObject21: list){ bundle.putString("UIDEVICE", uiObject21.getText()); } InstrumentationRegistry.registerInstance(instrumentation, bundle); instrumentation.sendStatus(111, bundle); } @Test public void testLauncherAPP(){ Context context = InstrumentationRegistry.getContext(); PackageManager pm = context.getPackageManager(); List<ApplicationInfo> list = pm.getInstalledApplications(0); Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); List<ResolveInfo> resolveInfoList = pm.queryIntentActivities(mainIntent, 0); for(ResolveInfo resolveInfo : resolveInfoList){ String activityName = resolveInfo.activityInfo.name; String packageName = resolveInfo.activityInfo.packageName; Intent launcherIntent = new Intent(); launcherIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); launcherIntent.setComponent(new ComponentName(packageName, activityName)); context.startActivity(launcherIntent); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } uiDevice.pressBack(); uiDevice.pressBack(); uiDevice.pressBack(); uiDevice.pressBack(); } }}
0 0
- UiDevice新增API
- Uiautomator 2.0之UiDevice新增API学习小记
- 四、UiDevice API 详细介绍
- UiAutomator(2)--UiDevice API
- UIDevice
- UIDevice
- UIDevice
- UIDevice
- android自动化测试之Uiautomator-UiDevice-API
- 03Android UiAutomator UiDevice API 详细介绍
- Android自动化测试之 Uiautomator-UiDevice-API
- UiAutomator笔记之UiDevice API(二)
- Android4.0新增API
- Android4.0新增API
- JAVA7 新增工具api
- Android4.0新增API
- Android4.0新增API
- Android4.0新增API
- 10个典型实用的PHP代码片段
- 1010. Radix (25)
- yum(Fedora和RedHat以及SUSE中的Shell前端软件包管理器)命令详解
- 正式决定CSDN安家
- phpdoc/phpdocumentor注释规范
- UiDevice新增API
- 聊聊iOS的那些小动画
- MAC bootstrap-cms安装记录
- C++解引用运算符*重载
- Java NIO - 非阻塞 IO和复用
- android studio 中使用aidl
- OC中的枚举
- LintCode-剑指Offer-(69)二叉树的层次遍历
- 1011. World Cup Betting (20)