之前使用 appium 中的 scrollTo 的功能感觉挺好用的,查看不在当前屏的元素,但在 Macaca 中就没有这个功能,去查看 appium 的源码发现,是调用 uiautomator 的 UiScrollable
源码是这样的

UiScrollable scrollView = new UiScrollable(new UiSelector().className("android.widget" +
                        ".ScrollView"));

UiObject itemApps = scrollView.getChildByText(new UiSelector().className("android.widget" +
                ".TextView"),"Apps");
        itemApps.click();

而考虑 appium 中的是使用

public RequiredElementType scrollTo(String text) {
    String uiScrollables = UiScrollable("new UiSelector().descriptionContains(\"" + text + "\")") +
                           UiScrollable("new UiSelector().textContains(\"" + text + "\")");
    return findElementByAndroidUIAutomator(uiScrollables);
  }

所以建议下把 UIAutomator 的接口开放下,然后,熟悉一点的同学就可以会用 new Uixxx 之类的尝试做一些比较实用的高级功能了。


↙↙↙阅读原文可查看相关链接,并与作者交流