2013-01-31 28 views
5

मैं नीचे दी गई अभिव्यक्ति के साथ तालिका संरचना से तत्वों के स्तंभ को सहेजने की कोशिश कर रहा हूं जिस पर मुझे उन बटनों को सत्यापित करने के लिए एक क्लिक ऑपरेशन करने की आवश्यकता है।सेलेनियम वेबड्राइवर को लागू करते समय किसी तालिका से वेबलेमेंट्स की सूची को कैसे सूचीबद्ध करें?

कोड:

मैं Total_element = 37 के लिए मूल्य की है।

for(int start=0; start <= Total_element; start++) 
{ 
    int startn=start+1; 
    System.out.println(start); 
    List <WebElement> Element1 = new ArrayList<WebElement>() ; 

    try{ 
     Element1.add(Naveen.findElement(By.xpath(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img"))); 
    }catch(Throwable t){ 
     System.out.println(t); 
    } 
    System.out.println(Element1.get(start)); 
    System.out.println("The element" + start + "is :"+ Element1.get(start)); 
    Naveen.findElement(By.xpath(Element1.get(start).toString())).click(); 
    Naveen.findElement(By.xpath(".//*[@id='action']/a/span/div")).click(); 
    System.out.println("The element" + start + "is :"+ Element1); 
    Thread.sleep(5000); 
} 

त्रुटि:

जब मैं सूची मैं निम्नलिखित आउटपुट प्राप्त से तत्वों को पुनः प्राप्त करने का प्रयास करें:

[[FirefoxDriver: firefox on XP (586a8f1f-f784-4ae7-adf5-5f920dfad8e0)] -> xpath: .//*[@id='data_grid']/tbody/tr[1]/td[2]/a/img]

आगे जो मेरे कह रहा है मेरा आपरेशन विफल हो रहा है।

+0

यू पूर्ण stacktrace..I लगता है कि वहाँ कुछ xpath या इसके साथ गलत क्या है पेस्ट कर सकते हैं तत्व का पता लगाने में सक्षम नहीं है –

उत्तर

1

असल में क्या मतलब हो रहा है,

driver.findElemnt(By.xpath("xpath")); 

की वापसी प्रकार WebElement है। जब आप उपरोक्त कोड ArrayList पर जोड़ते हैं तो यह वेबलेमेंट जोड़ देगा। WebElement बारे में जानकारी शामिल

Driver Used - FirefoxDriver
Browser session value - 586a8f1f-f784-4ae7-adf5-5f920dfad8e0
locator used - xpath: .//*[@ आईडी = 'data_grid']/tbody/tr [ 1]/टीडी [2]/ए/आईएमजी]

यदि आप वेब तत्व को पुनर्प्राप्त करने का प्रयास कर रहे हैं तो यह उन सभी चीजों को वापस कर देगा। आपके मामले में यही हो रहा है और क्लिक करने का प्रयास करते समय आपको त्रुटि मिल रही है।

आप ArrayList में केवल Xpath locator जोड़ सकते हैं। यह काम करेगा।

प्रयास करें इस

ArrayList<String> Element1 = new ArrayList<String>(); 
Element1.add(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img"); 

driver.findElement(By.xpath(Element1.get(`startn`))).click(); 
1

बजाय:

Naveen.findElement(By.xpath(Element1.get(start).toString())).click(); 

कोशिश:

Element1.get(start).click();