2016-04-08 10 views
5

का उपयोग कर स्वचालित IOS UITableview मेरे पास एक UITableView है जिसमें लगभग 50 तत्व हैं। किसी भी बिंदु पर उनमें से केवल 6 स्क्रीन पर दिखाई दे रहे हैं। मैं एक सेल चुनना चाहता हूं जो तालिका दृश्य में नहीं जोड़ा गया है या कहें कि मुझे डेटा सूची से 25 वें आइटम का चयन करने की आवश्यकता है।एपियम

अब मैं

wait.until(ExpectedConditions.visibilityOf(driver.findElementByAccessibilityId(element))).click(); 

लेकिन tableview

में एक सेल पर क्लिक के लिए इस विधि का उपयोग कर रहा है अपने काम नहीं कर के रूप में 25 वीं तत्व अभी तक देखने में नहीं जोड़ा जाता। कृपया ध्यान दें कि मैं कोड के भीतर गतिशील रूप से तालिका दृश्य कक्ष के लिए अभिगम्यता पहचानकर्ता जोड़ रहा हूं।

मैं यह काम कैसे कर सकता हूं?

***** जोड़ी अधिक जानकारी के ******

मैं दो पाठ विचारों को प्रदर्शित तालिका दृश्य सेल की है। मुद्रा लघु नाम और मुद्रा लंबा नाम।

उदाहरण

जीबीपी

ग्रेट ब्रिटेन पाउंड

अब जब कि tableview सेल के लिए पहुँच पहचानकर्ता के रूप में जीबीपी सेट किया गया है पर विचार करें। अब मैंने कोशिश की

driver.scrollTo ("GBP") और driver.scrollTo ("ग्रेट ब्रिटेन पाउंड")

दोनों फ्लॉप काम। मुझे एक त्रुटि संदेश मिल रहा है

A element could not be located on the page using the Search parameter 

धन्यवाद।

+1

क्या आप तत्व के पाठ को जानते हैं? क्योंकि driver.scrollTo ("टेक्स्ट") आईओएस में एक आकर्षण की तरह काम करता है। –

+0

क्या आपने एक्स-पथ को आज़माया है? एक्स-पथ में इंडेक्स स्क्रॉल करते समय तत्व तक पहुंचने में आपकी सहायता करनी चाहिए। – nullpointer

+0

मुझे लगता है कि आपको इसे चुनने से पहले सेल प्रदर्शित करना चाहिए। हो सकता है कि आपको गंतव्य कक्ष (तालिका दृश्य विधि के साथ) स्क्रॉल करना चाहिए, और उसके बाद इसे चुनने का प्रयास करें। सेल इंडेक्स खोजने के लिए आप मॉडल सरणी में अपना मॉडल निर्धारित कर सकते हैं। इसकी आवश्यकता है क्योंकि TableView कोशिकाओं का पुन: उपयोग करता है, और आप किसी भी तालिका के लिए रनटाइम में एक्सेसिबिलिटी आईडी बदलते हैं। दृश्य कक्ष –

उत्तर

1
String ReqN = "Your required string"; 
    boolean flag = true; 
    while (flag) { 
     for (i=1;i<=6;i++) { 
      String GetN = driver.findElement(By.xpath("//android.widget.HorizontalScrollView/android.widget.LinearLayout[" + i + "]")).getText(); 
      if (GetN.equals(ReqN)) { 
       flag = false; 
       System.out.println("Your result found"); 
      } 
     } 
     if (flag) { 
      driver.swipe(145, 765, 145, 180, 3000); 
     } 
    } 

स्ट्रिंग ReqN :: आपका पूर्वनिर्धारित स्ट्रिंग

स्ट्रिंग GetN :: पाठ प्रत्येक तत्व के लिए मिलता है

[1 6 जो हम पाश के लिए द्वारा प्राप्त करने के लिए] तो यह पाठ & मैच पहले के लिए मिलता है छह तत्व यदि आपका पूर्वनिर्धारित पाठ नहीं मिला है तो यह दिए गए अक्षों से स्वाइप होता है [जो कि 1 तत्व के लिए 6 वें तत्व है] .. इसलिए आपको नया छह तत्व & लूप फिर से निष्पादित किया जाएगा।

रेफरी। छवि Elements & X,Y points

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