首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将屏幕滚动到底部,没有滚动视图,没有ID,也没有firstChild android-espresso自动化。

将屏幕滚动到底部,没有滚动视图,没有ID,也没有firstChild android-espresso自动化。
EN

Stack Overflow用户
提问于 2015-04-10 18:09:00
回答 1查看 3.9K关注 0票数 3

我想滚动到当前屏幕的底部显示,但是

  1. 应用程序没有任何ScrollView。应用程序有HorizontalScrollView,但是它脱离了上下文。
  2. 使用onView,TableLayout和ID在屏幕上。但是它会引发与层次结构中的多个视图匹配的错误。
  3. 使用onView,获取firstChild()但仍然抛出错误和无法执行操作,执行‘滚动到’on视图‘与父匹配类型的第一个子视图’错误。
  4. 尝试onData(hasToString(startsWith()。但是它会引发与层次结构中的多个视图匹配的错误。
  5. 尝试了其他方法,如获取当前监视器和活动,但仍然没有发挥作用。
EN

回答 1

Stack Overflow用户

发布于 2015-04-15 07:50:09

好吧,根据你问题中很少的信息,我能提出的建议是:

  1. 简单的方法(但不是完全正确的)--只需在GridView中向上滑动到它的底部: onView(withId(R.id.GridView_Id)).perform(swipeUp());
  2. 简易方法: onData(instanceOf(Object_in_the_ROW.class)) .inAdapterView(withId(R.id.GridView_Id)) .atPosition(2) //position #如果有头或不具有.check(匹配(isDisplayed().perform(单击());//或任何其他操作,或没有操作
  3. 我更喜欢这样的做法: onData(withROWText("unique_text_in_ROW3")) .inAdapterView(withId(R.id.GridView_Id)) .check(matches(isDisplayed() .perform(click());

其中withRowText()是用于匹配ROW3中特定文本的自定义匹配器,如下所示:

代码语言:javascript
复制
public static Matcher<Object> withRowText(String expectedText) {
    Checks.checkNotNull(expectedText);
    return withRowText(equalTo(expectedText));
}

public static Matcher<Object> withRowText(final Matcher<String> itemTextMatcher) {
    Checks.checkNotNull(itemTextMatcher);
    return new BoundedMatcher<Object, ROWObject>(ROWObject.class) {
        @Override
        public boolean matchesSafely(ROWObject rowObject) {
            return itemTextMatcher.matches(rowObject.text);
        }

        @Override
        public void describeTo(Description description) {
            description.appendText("with rowObject: ");
            itemTextMatcher.describeTo(description);
        }
    };
}

顺便说一句,"GridView是一个在二维可滚动网格中显示项目的ViewGroup。“

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29568063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档