gpt4 book ai didi

android-espresso - 在没有 ScrollView 和没有 ID 并且没有 firstChild android-espresso 自动化的情况下将屏幕滚动到底部

转载 作者:行者123 更新时间:2023-12-01 09:55:15 28 4
gpt4 key购买 nike

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

  1. 应用程序没有任何 ScrollView。应用程序有 Horizo​​ntalScrollView 但它脱离了上下文。
  2. 在屏幕中使用onView、带有ID的TableLayout。但它会在层次结构中匹配多个 View 时引发错误。
  3. 使用 onView,通过获取 firstChild() 但仍然抛出错误,无法执行操作,错误执行“滚动到” View “与 parentMatcher 类型的第一个 subview ”。
  4. 尝试过 onData(hasToString(startsWith()。但它在匹配层次结构中的多个 View 时抛出错误。
  5. 尝试了其他方法,例如获取当前的 Monitor 和 Activity,但仍然无效。

最佳答案

好的,我可以根据您问题中的少量信息提出建议:

  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 # can very if you have header or not
    .check(matches(isDisplayed()))
    .perform(click()); //or any other action, or no action
  3. 我更喜欢的方法:

    onData(withROWText("unique_text_in_ROW3"))
    .inAdapterView(withId(R.id.GridView_Id))
    .check(matches(isDisplayed()))
    .perform(click());

其中 withRowText() 是自定义匹配器,用于匹配 ROW3 中的特定文本,类似于:

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。”

关于android-espresso - 在没有 ScrollView 和没有 ID 并且没有 firstChild android-espresso 自动化的情况下将屏幕滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29568063/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com