2016-07-22 18 views
6

का उपयोग करके मजबूत प्रतिक्रिया मूल तत्व ढूंढना मैं एक ऐप विकसित करने के लिए प्रतिक्रियात्मक मूल का उपयोग कर रहा हूं जिसके लिए अंत-टू-एंड परीक्षण की आवश्यकता होती है।ऐप्पियम

सेलेनियम वेबड्राइवर पृष्ठभूमि से आ रहा है, ऐसा लगता है कि ऐपियम में तत्व खोज वेबड्राइवर की तुलना में बहुत अजीब हो सकता है, क्योंकि देशी घटकों में केवल आईडी और एक गैर-उपयोगकर्ता परिभाषित वर्ग है।

  1. क्या कोई तरीका है कि मैं तत्वों को कुछ प्रकार के मेटाडेटा जोड़ सकता हूं ताकि उन्हें ढूंढना आसान हो सके?

कहें कि मेरे पास एक सेल के अंदर जटिल तत्वों के साथ एक टेबल है, और मुझे पहले सही पंक्ति, फिर सेल खोजने की आवश्यकता है, और उसके बाद सेल के अंदर हेरफेर करने के लिए सही घटक मिलते हैं।

आदर्श रूप में मैं "myTargetRows" जैसी चीज़ों की खोज करके पंक्तियों की गणना करने में सक्षम होना चाहता हूं। इससे मुझे पंक्तियों की एक सूची मिल जाएगी।

  1. यदि मैं इसे सही ढंग से समझता हूं, तो मूल अनुप्रयोगों में कोई भी दो घटक समान आईडी नहीं रख सकता है, इसलिए मैं इस तरह आईडी का उपयोग नहीं कर सकता, है ना? (यानी एकाधिक पंक्ति घटकों के लिए, एक ही आईडी, "myTargetRows" का उपयोग करें)।
  2. यदि नहीं, तो क्या मुझे "myTargetRow0", "myTargetRow1", आदि जैसे क्रमांकित आईडी का उपयोग करना चाहिए और फिर आंशिक रूप से आईडी से मिलान करने के लिए XPath का उपयोग करना चाहिए?
  3. क्या कोई बेहतर तरीका नहीं है?
  4. अगर मैं ऐसा कुछ कर सकता हूं, तो क्या मैं उन सही नेस्टेड तत्वों को ढूंढने के लिए बस उन findElement कॉलों को चेन कर सकता हूं?

पीएस .: मैं अपने locators में सटीक घटक पदानुक्रमों को अमान्य नहीं करना चाहता हूं ताकि उन्हें अमान्य करने से बच सकें, क्या मुझे अपने विचारों में कुछ भी स्थानांतरित करना चाहिए, इसलिए उन बिंदु-और-क्लिक समाधानों की सहायता नहीं होगी।

पी। 2: समाधानों को एंड्रॉइड और आईओएस दोनों पर काम करना चाहिए, भले ही मुझे इसके लिए कुछ प्रकार के अमूर्तता को लागू करने की आवश्यकता हो।

+0

http://stackoverflow.com/a/37295343/1746118 जांचें कि क्या यह आपको किसी भी तरह से मदद करता है – nullpointer

+0

'कोई भी दो घटक समान आईडी नहीं हो सकता है' एक अच्छी धारणा नहीं है। यद्यपि एक अच्छा दीर्घकालिक अभ्यास।इसके अलावा आप एपियम में 'सूची ' का उपयोग करके गणना करने के लिए देख सकते हैं, अपने प्रश्नों के 2 ~ 5 को हल करना चाहिए – nullpointer

उत्तर

0

आपको accessibilityLabel व्यू के प्रोप का उपयोग करना चाहिए।

accessibilityLabel PropTypes.node

ओवरराइड पाठ है जो उपयोगकर्ता द्वारा तत्व के साथ सूचना का आदान प्रदान स्क्रीन रीडर द्वारा पढ़ा है। डिफ़ॉल्ट रूप से, लेबल द्वारा सभी बच्चों को घुमाने और अंतरिक्ष द्वारा अलग किए गए सभी टेक्स्ट नोड्स को एकत्रित करके बनाया गया है।

अधिक जानकारी here

पाया जा सकता है अद्वितीय आईडी के लिए, मान लीजिए कि आप सूचीदृश्य और 100 पंक्तियों की सुविधा देता है। आप accessibilityLabel के लिए rowId और स्थिर पाठ को जोड़ सकते हैं।

जैसे: 0_MyCustomRow, 1_MyCustomRow

+0

मकके क्या आपके पास इसके लिए एक कार्य कोड उदाहरण है? – goldylucks

0

सॉस लैब्स ब्लॉग में article पर एक नजर डालें, आर एन क्षुधा से निपटने का एक अच्छा उदाहरण एक thats।