2017-07-15 56 views
2

我正在嘗試編寫一個Espresso測試,它將在自定義SearchView中鍵入Text。自定義搜索查看是在這裏:Android Espresso如何從自定義視圖中獲取EditText,然後鍵入文本

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

我在我的MainActivity使用它。如果我直接在這個SearchView上調用'typeText',它會拋出一個錯誤,因爲我實際上需要從這個SearchBar獲取EditText。

的EditText上是search_view.xml

我覺得咖啡命令應該是:

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

我應該如何獲得的EditText參考?

回答

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')); 

} 
相關問題