如何使用UIAutomator在Android选项卡中滚动

时间:2013-11-27 14:38:35

标签: uiautomator

我正在尝试使用UIAutomator滚动。方案是我进入选项卡中的“设置”菜单,然后单击“应用程序”选项,这些选项为我提供了选项卡中所有应用程序的列表。不,我想滚动应用程序列表,这是我面临的问题。它滚动设置选项而不是应用程序列表。我附上了一个屏幕截图和我的代码。

            UiScrollable scroll = new UiScrollable(
                    new UiSelector().scrollable(true));
            scroll.setAsVerticalList();

            UiObject Apps = scroll.getChildByText(new UiSelector()
                    .className(android.widget.TextView.class.getName()),
                    "Apps");
            Apps.clickAndWaitForNewWindow();
            UiObject Locker = scroll.getChildByText(new UiSelector().className(android.widget.TextView.class.getName()),"Content Locker");
            Locker.clickAndWaitForNewWindow();

Image

2 个答案:

答案 0 :(得分:3)

我也是UiAutomator的新手,并且没有太多的教程可供学习。我在这里使用了Smrti示例,但是有些事情已经被弃用了,所以我纠正了一下以使一切正常。这就是我得到的

 UiDevice mDevice = UiDevice.getInstance(getInstrumentation());
    mDevice.pressHome();

    UiObject allAppsButton = mDevice
            .findObject(new UiSelector().description("Apps"));

    allAppsButton.clickAndWaitForNewWindow();

    UiScrollable appViews = new UiScrollable(new UiSelector().scrollable(true));

    appViews.scrollIntoView(new UiSelector().text("Settings"));
    mDevice.findObject(new UiSelector().text("Settings")).clickAndWaitForNewWindow();

    mDevice.findObject(new UiSelector().text("Apps")).click();

我没有在此处搜索某个应用,我相信您可以像在我的代码段中搜索“设置”应用一样管理它。

答案 1 :(得分:2)

假设我想点击应用程序Facebook,它位于设置下的应用程序列表中。

你可以使用它 -

 getUiDevice().pressHome();
 allAppsButton = new UiObject(new UiSelector().description("Apps"));
 allAppsButton.click();

 appViews = new UiScrollable(new UiSelector().scrollable(true));
 appViews.setAsHorizontalList();
 selector = new UiSelector().className(android.widget.TextView.class.getName());

 appToLaunch = appViews.getChildByText(selector, "Settings");
 if (appToLaunch != null)
    appToLaunch.clickAndWaitForNewWindow();

    new UiObject(new UiSelector().text("Apps")).click();

    UiScrollable appViews1 = new UiScrollable(newUiSelector().scrollable(true));

    appViews1.scrollForward();
    appViews1.scrollTextIntoView("Facebook");
    new UiObject(new UiSelector().text("Facebook")).click();

这应该有用。