Ich versuche, Uiautomator zu verwenden, um meine Anwendungsberechtigungen in Anwendungsdetails mit Google's sample app zu widerrufen. Es kam jedoch zu dem Problem, dass mein uiautomator anscheinend den falschen Status von toggle bekommt. Wenn der Schalter aktiviert ist, gibt der iiautomator aus bestimmten Gründen immer noch false
zurück.uiautomator klicken/widerrufen Anwendungserlaubnisliste
Mein Endziel ist es, die Tasten nacheinander aus den gleichen Layouts mit unterschiedlichen Indexen zu schalten.
@Test
public void clickThruSettings() throws UiObjectNotFoundException {
// go to the target page and open the permissions list.
Context context = InstrumentationRegistry.getContext();
final Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
Uri uri = Uri.fromParts("package", BASIC_SAMPLE_PACKAGE, null);
intent.setData(uri);
context.startActivity(intent);
UiObject permissions = mDevice.findObject(new UiSelector().text("Permissions"));
permissions.clickAndWaitForNewWindow();
// toggle on and off with index for linearLayout.
togglePermissionButton(true,0);
togglePermissionButton(false,1);
togglePermissionButton(true,2);
togglePermissionButton(false,3);
}
private void togglePermissionButton(boolean enabled, int index) throws UiObjectNotFoundException {
UiObject permissionButton = mDevice.findObject(new UiSelector().className("android.widget.LinearLayout")
.scrollable(false).index(index)).getChild(new UiSelector().className(android.widget.Switch.class
.getName()));
if (permissionButton.waitForExists(2000)&& permissionButton.exists()&& permissionButton.isEnabled()) {
if (permissionButton.isChecked() != enabled) {
permissionButton.click();
}
}
}
Irgendwelche Ideen?