执行swipeUp()android-espresso自动化后,getfocus到屏幕上的元素

时间:2015-04-17 14:00:12

标签: android android-espresso

我正在使用Android自动化在GridView上执行swipeUp(),如下所示,

onView(withId(R.id.grid))执行(swipeUp());它工作得很好。

上面的网格动态生成TableLayout。我无法使用onView或onData在GridView,TableLayout,TableRowLayout上执行scrollTo(),因为我没有在层次结构中定义ScrollView,它抛出PerformException:错误执行'加载适配器数据'在视图' id:com.app.mobile:id / grid'。

当我尝试在swipeUp()之后访问TableLayout,TableRowLayout内容时,它抛出了java.lang.NullPointerException。没有swipeUp(),可以看到两行表,并且isDisplayed()事件运行完美,但我想访问剩余的行。

我想在swipeUP()之后聚焦到元素。

代码:

expMonitor =getInstrumentation().addMonitor(MyActivity.class.getName(), null, false);
    expActivity = getInstrumentation().waitForMonitorWithTimeout(expMonitor, 3000);
    Matcher<View> viewMatcher_layout = findChildof(withId(R.id.grid), 2);
    Matcher<View> viewMatcher_table = findChildof(viewMatcher_layout, 1);
    onView(withId(R.id.grid)).perform(swipeUp());
    for(int currentIndex = 0;currentIndex<5;currentIndex++){
        Matcher<View> viewMatcher_row_layout = findChildof(viewMatcher_table, currentIndex);
onView(findChildof(viewMatcher_table,currentIndex)).check(matches(isDisplayed()));
    Matcher<View> viewMatcher_text = findChildof(viewMatcher_row_layout, 0);
    if (findChildof(viewMatcher_text, 0).equals(notNullValue()))
     onView(findChildof(viewMatcher_text, 0)).check(matches((isDisplayed())));
    if (findChildof(viewMatcher_text, 1).equals(notNullValue()))
     onView(findChildof(viewMatcher_text, 1)).check(matches((isDisplayed())));
    if (findChildof(viewMatcher_text, 2).equals(notNullValue()))
     onView(findChildof(viewMatcher_text, 2)).check(matches((isDisplayed())));
    }

0 个答案:

没有答案