本文整理汇总了Java中android.support.test.uiautomator.UiDevice类的典型用法代码示例。如果您正苦于以下问题:Java UiDevice类的具体用法?Java UiDevice怎么用?Java UiDevice使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
UiDevice类属于android.support.test.uiautomator包,在下文中一共展示了UiDevice类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setup
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Before
public void setup() {
// Unlock the screen if it's locked
UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
try {
device.wakeUp();
} catch (RemoteException e) {
e.printStackTrace();
}
// Set the flags on our activity so it'll appear regardless of lock screen state
new Handler(Looper.getMainLooper()).post(() -> {
if (getActivity() == null) return;
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
});
}
示例2: startMainActivityFromHomeScreen
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Before
public void startMainActivityFromHomeScreen() throws Exception {
// Initialize UiDevice instance
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
// Start from the home screen
mDevice.pressHome();
// Wait for launcher
final String launcherPackage = mDevice.getLauncherPackageName();
assertThat(launcherPackage, notNullValue());
mDevice.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)),
LAUNCH_TIMEOUT);
// Launch the blueprint app
Context context = InstrumentationRegistry.getContext();
final Intent intent = context.getPackageManager().getLaunchIntentForPackage(BASIC_PACKAGE);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); // Clear out any previous instances
context.startActivity(intent);
// Wait for the app to appear
mDevice.wait(Until.hasObject(By.pkg(BASIC_PACKAGE).depth(0)), LAUNCH_TIMEOUT);
}
示例3: startMainActivityFromHomeScreen
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Before
public void startMainActivityFromHomeScreen() {
// Initialize UiDevice instance
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
// Start from the home screen
mDevice.pressHome();
// Wait for launcher
final String launcherPackage = getLauncherPackageName();
assertThat(launcherPackage, notNullValue());
mDevice.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)), LAUNCH_TIMEOUT);
// Launch the blueprint app
Context context = InstrumentationRegistry.getContext();
final Intent intent = context.getPackageManager()
.getLaunchIntentForPackage(BASIC_SAMPLE_PACKAGE);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); // Clear out any previous instances
context.startActivity(intent);
// Wait for the app to appear
mDevice.wait(Until.hasObject(By.pkg(BASIC_SAMPLE_PACKAGE).depth(0)), LAUNCH_TIMEOUT);
}
示例4: allowPermissionsIfNeeded
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
public static void allowPermissionsIfNeeded(String permissionNeeded) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !hasNeededPermission(permissionNeeded)) {
sleep(PERMISSIONS_DIALOG_DELAY);
UiDevice device = UiDevice.getInstance(getInstrumentation());
UiObject allowPermissions = device.findObject(new UiSelector()
.clickable(true)
.checkable(false)
.index(GRANT_BUTTON_INDEX));
if (allowPermissions.exists()) {
allowPermissions.click();
}
}
} catch (UiObjectNotFoundException e) {
System.out.println("There is no permissions dialog to interact with");
}
}
示例5: openAppTest
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Test
public void openAppTest() throws Exception {
UiDevice mDevice = UiDevice.getInstance(getInstrumentation());
mDevice.pressHome();
// Bring up the default launcher by searching for a UI component
// that matches the content description for the launcher button.
UiObject allAppsButton = mDevice
.findObject(new UiSelector().description("Apps"));
// Perform a click on the button to load the launcher.
allAppsButton.clickAndWaitForNewWindow();
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.wbrawner.simplemarkdown", appContext.getPackageName());
UiScrollable appView = new UiScrollable(new UiSelector().scrollable(true));
UiSelector simpleMarkdownSelector = new UiSelector().text("Simple Markdown");
appView.scrollIntoView(simpleMarkdownSelector);
mDevice.findObject(simpleMarkdownSelector).clickAndWaitForNewWindow();
}
示例6: startMainActivityFromHomeScreen
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Before
public void startMainActivityFromHomeScreen() {
// Initialize UiDevice instance
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
// Start from the home screen
mDevice.pressHome();
// Wait for launcher
final String launcherPackage = mDevice.getLauncherPackageName();
Assert.assertThat(launcherPackage, CoreMatchers.notNullValue());
mDevice.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)),
LAUNCH_TIMEOUT);
// Launch the app
Context context = InstrumentationRegistry.getContext();
final Intent intent = context.getPackageManager()
.getLaunchIntentForPackage(BASIC_SAMPLE_PACKAGE);
// Clear out any previous instances
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
// Wait for the app to appear
mDevice.wait(Until.hasObject(By.pkg(BASIC_SAMPLE_PACKAGE).depth(0)),
LAUNCH_TIMEOUT);
}
示例7: viewExistsContains
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
public static boolean viewExistsContains(UiDevice device, String... textToMatch) throws UiObjectNotFoundException
{
if (textToMatch == null || textToMatch.length < 1)
{
return false;
}
UiObject view;
boolean contains = false;
for (int i = 0; i < textToMatch.length; i++)
{
view = device.findObject(new UiSelector().textContains(textToMatch[i]));
contains = view.exists();
if (contains) return true;
}
return false;
}
示例8: allowLocationPermissionWhenAsked
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
/**
* Allows location permission if the runtime permission dialog is shown.
*/
public static void allowLocationPermissionWhenAsked()
{
try
{
if (!PermissionUtils.isLocationGranted(InstrumentationRegistry.getTargetContext()))
{
TestHelper.sleep(PERMISSIONS_DIALOG_DELAY);
final UiDevice device = UiDevice.getInstance(getInstrumentation());
final UiObject allowPermissions = device.findObject(new UiSelector()
.clickable(true)
.checkable(false)
.index(GRANT_BUTTON_INDEX));
if (allowPermissions.exists())
{
allowPermissions.click();
}
}
}
catch (final UiObjectNotFoundException e)
{
Log.e(PermissionTestHelper.class.getSimpleName(), "There is no permissions dialog to interact with.");
}
}
示例9: testUiAutomatorAPI
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Ignore
@Test
public void testUiAutomatorAPI() throws UiObjectNotFoundException, InterruptedException {
UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
UiSelector editTextSelector = new UiSelector().className("android.widget.EditText").text("this is a test").focusable(true);
UiObject editTextWidget = device.findObject(editTextSelector);
editTextWidget.setText("this is new text");
Thread.sleep(2000);
UiSelector buttonSelector = new UiSelector().className("android.widget.Button").text("CLICK ME").clickable(true);
UiObject buttonWidget = device.findObject(buttonSelector);
buttonWidget.click();
Thread.sleep(2000);
}
示例10: testA
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
/**
* 测试CollapsingToolbarLayout
* 被测Demo下载地址:https://github.com/alidili/DesignSupportDemo
*
* @throws UiObjectNotFoundException
*/
public void testA() throws UiObjectNotFoundException {
// 获取设备对象
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
UiDevice uiDevice = UiDevice.getInstance(instrumentation);
// 获取上下文
Context context = instrumentation.getContext();
// 启动测试App
Intent intent = context.getPackageManager().getLaunchIntentForPackage("com.yang.designsupportdemo");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
// 打开CollapsingToolbarLayout
String resourceId = "com.yang.designsupportdemo:id/CollapsingToolbarLayout";
UiObject collapsingToolbarLayout = uiDevice.findObject(new UiSelector().resourceId(resourceId));
collapsingToolbarLayout.click();
for (int i = 0; i < 5; i++) {
// 向上移动
uiDevice.swipe(uiDevice.getDisplayHeight() / 2, uiDevice.getDisplayHeight(),
uiDevice.getDisplayHeight() / 2, uiDevice.getDisplayHeight() / 2, 10);
// 向下移动
uiDevice.swipe(uiDevice.getDisplayHeight() / 2, uiDevice.getDisplayHeight() / 2,
uiDevice.getDisplayHeight() / 2, uiDevice.getDisplayHeight(), 10);
}
// 点击应用返回按钮
UiObject back = uiDevice.findObject(new UiSelector().description("Navigate up"));
back.click();
// 点击设备返回按钮
uiDevice.pressBack();
}
示例11: testB
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
/**
* 滑动界面,打开About phone选项
* 测试环境为标准Android 7.1.1版本,不同设备控件查找方式会有不同
*
* @throws UiObjectNotFoundException
*/
public void testB() throws UiObjectNotFoundException {
// 获取设备对象
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
UiDevice uiDevice = UiDevice.getInstance(instrumentation);
// 获取上下文
Context context = instrumentation.getContext();
// 点击Settings按钮
UiObject uiObject = uiDevice.findObject(new UiSelector().description("Settings"));
uiObject.click();
// 滑动列表到最后,点击About phone选项
UiScrollable settings = new UiScrollable(new UiSelector().className("android.support.v7.widget.RecyclerView"));
UiObject about = settings.getChildByText(new UiSelector().className("android.widget.LinearLayout"), "About phone");
about.click();
// 点击设备返回按钮
uiDevice.pressBack();
uiDevice.pressBack();
}
示例12: get
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Override
public NanoHTTPD.Response get(RouterNanoHTTPD.UriResource uriResource, Map<String, String> urlParams, NanoHTTPD.IHTTPSession session) {
String sessionId = urlParams.get("sessionId");
try {
UiDevice mDevice = Elements.getGlobal().getmDevice();
Integer width = mDevice.getDisplayWidth();
Integer height = mDevice.getDisplayHeight();
JSONObject size = new JSONObject();
size.put("width", width);
size.put("height", height);
return NanoHTTPD.newFixedLengthResponse(getStatus(), getMimeType(), new Response(size, sessionId).toString());
} catch(Exception e) {
return NanoHTTPD.newFixedLengthResponse(getStatus(), getMimeType(), new Response(Status.UnknownError, sessionId).toString());
}
}
示例13: getAlertButton
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
private static UiObject2 getAlertButton(String alertType) throws Exception {
UiDevice mDevice = Elements.getGlobal().getmDevice();
int buttonIndex;
if (alertType.equals("accept")) {
buttonIndex = 1;
} else if (alertType.equals("dismiss")) {
buttonIndex = 0;
} else {
throw new Exception("alertType can only be 'accept' or 'dismiss'");
}
List<UiObject2> alertButtons = mDevice.findObjects(By.clazz("android.widget.Button").clickable(true).checkable(false));
if (alertButtons.size() == 0) {
return null;
}
UiObject2 alertButton = alertButtons.get(buttonIndex);
return alertButton;
}
示例14: get
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Override
public NanoHTTPD.Response get(RouterNanoHTTPD.UriResource uriResource, Map<String, String> urlParams, NanoHTTPD.IHTTPSession session) {
String sessionId = urlParams.get("sessionId");
Map<String, String> body = new HashMap<String, String>();
UiDevice mDevice = Elements.getGlobal().getmDevice();
JSONObject result = null;
try {
session.parseBody(body);
String postData = body.get("postData");
JSONObject jsonObj = JSON.parseObject(postData);
JSONArray keycodes = (JSONArray)jsonObj.get("value");
for (Iterator iterator = keycodes.iterator(); iterator.hasNext();) {
int keycode = (int) iterator.next();
mDevice.pressKeyCode(keycode);
}
return NanoHTTPD.newFixedLengthResponse(getStatus(), getMimeType(), new Response(result, sessionId).toString());
} catch (Exception e) {
return NanoHTTPD.newFixedLengthResponse(getStatus(), getMimeType(), new Response(Status.UnknownError, sessionId).toString());
}
}
示例15: setUpScreenshots
import android.support.test.uiautomator.UiDevice; //导入依赖的package包/类
@Before
public void setUpScreenshots() {
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
targetContext = instrumentation.getTargetContext();
device = UiDevice.getInstance(instrumentation);
// Use this to switch between default strategy and HostScreencap strategy
//Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
Screengrab.setDefaultScreenshotStrategy(new HostScreencapScreenshotStrategy(device));
device.waitForIdle();
}