UIAutomator - 如何单击菜单项

时间:2014-02-12 07:30:52

标签: android menuitem uiautomator android-uiautomator

我已经使用UI Automator自动转到设置Android手机,我点击菜单使用“getUiDevice()。pressMenu();”和它打开的菜单有3个子菜单项,我想使用名称或索引或ID点击第二个菜单,请帮助如何点击Android UIAutomator中的子菜单?

3 个答案:

答案 0 :(得分:0)

带有三个点的此溢出菜单图标ImageView没有ID ...

但是可以通过描述获得它:

UiObject2 menuButton = this.mDevice.findObject(By.desc("More options"));

/* open the menu */
if(menuButton != null && menuButton.isClickable()) {
    menuButton.click();
    menuButton.recycle();
} else {
    Assert.fail();
}

然后可以按其索引单击菜单项:

ArrayList<UiObject2> menu = (ArrayList<UiObject2>) this.mDevice.findObject(By.clazz("android.widget.ListView")).getChildren();

/* click the menu item at index 0 */
UiObject2 menu_action = menu.get(0);
if (menu_action != null && menu_action.isClickable()) {
    menu_action.click();
    menu_action.recycle();
} else {
    Assert.fail();
}

答案 1 :(得分:0)

使用clazz方法有效

 UiObject2 item = mDevice.findObject(By.clazz("android.widget.ListView"));

答案 2 :(得分:-1)

您可以使用'uiautomatorviewer'工具查看其中显示的菜单项的文字/说明/资源ID /索引。

使用uiautomatorviewer工具:

[1] Connect your device.
[2] Open command prompt and type 'uiautomatorviewer'.
[3] Open the particular screen of whose elements you want to view (in this case - your  menu items).
[4] Press the green 'Device Screenshot' button  next to file open in top left.

将鼠标悬停在屏幕截图上以查看屏幕元素的文本/说明/资源ID /索引,您可以使用其中显示的内容。