Android Espresso如何从自定义视图中获取EditText,然后键入Text

时间:2017-07-15 11:31:01

标签: android android-espresso

我正在尝试编写Espresso测试,该测试将在自定义SearchView中键入文本。自定义SearchView位于:

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

我在我的MainActivity中使用它。如果我直接拨打' typeText'在这个SearchView上,它抛出一个错误,因为我实际上需要从这个SearchBar获取EditText。

EditText位于search_view.xml

我认为Espresso命令应如下所示:

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

我应该如何获得EditText引用?

1 个答案:

答案 0 :(得分: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'));

 }