2015-10-28 10 views
6

मुझे विश्वास नहीं है कि यह एक डुप्लिकेट सवाल है। मैं एक साधारण एस्प्रेसो परीक्षण लिख रहा हूं और इसमें से एक हिस्सा स्नैक्सबार में "ठीक" बटन पर क्लिक करना शामिल है।एस्प्रेसो परीक्षण में स्नैकबार बटन पर क्लिक कैसे करें?

Espresso.onView(allOf(withId(android.support.design.R.id.snackbar_text), withText(R.string.permission_snackbar))) 
      .check(matches(isDisplayed())); 
Espresso.onView(withText("Ok")).perform(click()); 

यह फेंकता

android.support.test.espresso.PerformException: देखने पर 'सिंगल क्लिक' करने में त्रुटि 'पाठ के साथ: "ठीक है" है'। इसके कारण: java.lang.RuntimeException: कार्रवाई नहीं की जाएगी क्योंकि लक्ष्य दृश्य निम्न में से एक या अधिक बाधाओं से मेल नहीं खाता है: उपयोगकर्ता के दृश्य का कम से कम 9 0 प्रतिशत प्रदर्शित होता है। लक्ष्य दृश्य: "AppCompatButton {id = 2131558552, res-name = snackbar_action, दृश्यता = दृश्यमान, चौड़ाई = 264, ऊंचाई = 144, है-फोकस = झूठी, है-फोकस करने योग्य = सत्य, है-विंडो-फ़ोकस = सत्य , is-clickable = true, is-enabled = true, is-focus = false, is-focusable = true, is-layout-request = false, is-select = false, रूट-है-लेआउट-अनुरोध = झूठे, है-इनपुट-कनेक्शन = false, एक्स = 684.0, y = 53.0, पाठ = ठीक है, इनपुट प्रकार = 0, IME-लक्ष्य = false, है-लिंक = false} "

कोई भी विचार ?

+0

"मुझे विश्वास नहीं है कि यह एक डुप्लिकेट सवाल है।" बेशक नहीं, कोई भी कभी नहीं करता है। यदि आप यह बताने जा रहे हैं कि यह एक डुप्ली क्यों नहीं है, तो * विशिष्ट कारण * क्यों * विशिष्ट मौजूदा प्रश्न * आपके प्रश्न का उत्तर नहीं दिया; अन्यथा, इसे भी लाओ मत। –

+0

मेरे पास एक ही समस्या है, आपने इसे कैसे हल किया? –

उत्तर

1

यह बस आईडी snackbar_action का उपयोग कर पाया जा सकता है:

onView(allOf(withId(android.support.design.R.id.snackbar_action))) 
    .perform(click()); 
+0

यदि आप ओपी पर एक अच्छा नज़र डालते हैं, तो आप देखेंगे कि मैचर काम करता है। मेरा जवाब इस समस्या के कारण दौड़ की स्थिति पर चर्चा करता है। – OYRM

6

RuntimeException यहाँ java.lang.RuntimeException: Action will not be performed because the target view does not match one or more of the following constraints: at least 90 percent of the view's area is displayed to the user. देखा। मुद्दा वास्तव में प्रदर्शित होने के लिए View की विफलता से आता है।

समस्या दौड़ की स्थिति के कारण होती है। आप दृश्य को खोलने का प्रयास कर रहे हैं, और इसके उद्घाटन के दौरान आप इसे क्लिक करने का प्रयास कर रहे हैं। यदि समय सही नहीं है, तो View का 90% से कम एस्प्रेसो फ्रेमवर्क के लिए click() पर उपलब्ध होगा। आप के रूप में आप फोन की Developer Options

  • सेट निम्नलिखित
    • विंडो एनिमेशन स्केल = 0.0x
    • संक्रमण एनिमेशन स्केल को The Espresso Setup Instructions

      • नेविगेट में सिफारिश की, अक्षम करने एनिमेशन द्वारा समस्या को हल करने में सक्षम हो सकता = 0.0x
      • एनीमेटर अवधि स्केल = 0.0x

    मेरा स्वयं का परीक्षण इंगित करता है कि आप केवल Transition Animation Scale से 0.0x पर सेट कर सकते हैं। जैसा कि आप कल्पना कर सकते हैं, यह दौड़ की स्थिति के लिए एक पूरी तरह से सुसंगत समाधान है जिसे आप अनुभव कर रहे हैं।

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