Android Espresso如何从自定义视图中获取EditText并输入文本

5

我正在尝试编写一个Espresso测试,以在自定义SearchView中输入文本。 自定义SearchView如下:

https://github.com/MiguelCatalan/MaterialSearchView/tree/develop/library/src/main/res/layout

我正在我的MainActivity中使用它。如果我直接在这个SearchView上调用'typeText',它会抛出一个错误,因为我实际上需要从这个搜索栏中获取EditText。

EditText在search_view.xml中。

我认为Espresso命令应该是:

onView(get EditText from SearchView).perform(typeText("chicken"));

我该如何获取EditText的引用?

1个回答

1

没关系,我找到了解决办法。

我在单元测试中获取了我的“搜索”视图,然后开始遍历其子项。

当我发现EditText时,就调用了onView方法。

下面是代码。希望能帮到有需要的人:

search = (SearchBox) mActivityRule.getActivity().findViewById(R.id.searchbox);

    for( int i = 0; i < search.getChildCount(); i++ )

        if( search.getChildAt( i ) instanceof EditText) {


        onView(withId(search.getChildAt(i).getId())).perform(typeText("soup" + '\n'));

 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接