2016-02-26 9 views
8

मैं, एक परीक्षण एस्प्रेसो का उपयोग कर बनाने हूँ पहले मैं कार्रवाई बार खोलें:जब onView का उपयोग कर (withId (...))

openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext()); 

सब कुछ ठीक करने के लिए यहाँ, लेकिन फिर मैं एक विकल्प मेनू पर क्लिक करें:

onView(withId(R.id.action_menu)).perform(click()); 

मेनू लेआउट एक्सएमएल आईडी के साथ एक विकल्प होता है: "action_menu"।

मैं एक त्रुटि मिलती है:

android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: ***.********.******.android.debug:id/action_menu 
If the target view is not part of the view hierarchy, you may need to use Espresso.onData to load it from one of the following AdapterViews:android.support.v7.widget.ListPopupWindow$DropDownListView{43fd3f58 VFED.VC. .F...... 24,24-612,168} 

मैं का उपयोग कर काम करने के लिए इस कदम मिला:

onView(withText(R.string.action_report)).perform(click()); 

मैं पता है कि हालांकि आईडी के साथ गलत हो रहा है करना चाहते हैं।

कोई विचार?

+0

आईडी आइटम वास्तव में है = "@ + id/action_menu"? यह टेक्स्ट मैचर से लगता है कि यह रिपोर्ट_एक्शन की तरह अधिक विशिष्ट हो सकता है। – siger

+0

हाय साइगर, हाँ आइटम में आईडी 'एंड्रॉइड है: id =" @ + id/action_menu "' लेकिन एस्प्रेसो केवल पाठ द्वारा खोज रहा है। अभी भी नहीं पता क्यों ... –

उत्तर

2

ऐसा लगता है कि मेनू का प्रतिनिधित्व करने वाला दृश्य आईडी को नहीं जानता है, बल्कि केवल एक आइटम का पाठ है। मैं एस्प्रेसो के लिए नया हूँ और इसलिए अधिक विवरण नहीं दे सकते हैं, लेकिन इस पोस्ट आपकी समस्या से संबंधित है: Espresso NoMatchingViewException when using withId matcher

+0

धन्यवाद @Coralie B मैं उस पोस्ट को पहले नहीं ढूंढ पाया था। –

संबंधित मुद्दे