2

我正在尝试使用 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();

图片

4

2 回答 2

5

我也是 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();

我没有在此处包含对某些应用程序的搜索,我相信您可以像在我的代码片段中搜索设置应用程序一样管理它。

于 2017-04-06T08:53:07.730 回答
3

假设我想点击应用程序 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();

这应该有效。

于 2013-12-05T08:43:36.793 回答