Android Espresso如何从自定义视图获取编辑文本,然后键入文本

Android Espresso如何从自定义视图获取编辑文本,然后键入文本,android,android-espresso,Android,Android Espresso,我正在尝试编写一个浓缩咖啡测试,它将在自定义搜索视图中键入文本。自定义搜索视图位于此处: 我正在我的主要活动中使用它。如果我在这个SearchView上直接调用'typeText',它会抛出一个错误,因为我实际上需要从这个搜索栏获取EditText EditText位于search_view.xml中 我认为Espresso命令应该如下所示: onView(get EditText from SearchView).perform(typeText("chicken")); 如何获取Edit

我正在尝试编写一个浓缩咖啡测试,它将在自定义搜索视图中键入文本。自定义搜索视图位于此处:

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

EditText位于search_view.xml中

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

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

如何获取EditText引用?

没关系,我找到了解决方案

我在单元测试中得到了我的“搜索”视图,然后我开始遍历它的子对象

当我找到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'));

 }
search=(SearchBox)mActivityRule.getActivity().findViewById(R.id.SearchBox);
for(int i=0;i