2012-09-20 11 views
9

संपादित करें: मैं भी करने की कोशिश की इससिर्फ तत्व आईडी हड़पने के लिए कैसे - सेलेनियम WebDriver का उपयोग कर 2

var webElements1 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']//input"))).ToList(); 

मैं खाली पाठ

मैं सिर्फ आईडी हड़पने के लिए एक रास्ता खोजने के लिए कोशिश कर रहा हूँ मिल सूची जो मैं प्राप्त कर रहा हूं वह नीचे है और मेरी स्क्रीन का एक प्रिंट शॉट है।

// WebDriver पाठ की सूची प्राप्त करने

नीचे कोड मुझे रिकॉर्ड की सही संख्या देता है, लेकिन यह सिर्फ मेरे Text दे लेकिन मैं Text और एक विशेष Text

मैंने कोशिश की Id के बाद कर रहा हूँ इस:

var webElements1 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']/tbody/tr/td/span"))).ToList(); 

इस

var webElements2 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']/tbody/tr/td"))).ToList(); 

और इस ...

var webElements3 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']"))).ToList(); 

लाइन के सभी कोड मुझे सही रिटर्न देता है, लेकिन ईद के बिना।) मैं

List<WebElement> element = driver.findElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']//input"))); 

for(WebElement ele:elements) 
{ 

     ele.getAttribute("id");  // for getting id of each element 

     ele.getText();    //for getting text of each element 

} 
+0

जब आप आईडी मतलब है, क्या आपका मतलब क्या है? नियंत्रण की वास्तविक आईडी (ctl00_etc) या पाठ स्वयं ही? ('आइटम 1', 'आइटम 2' इत्यादि?) – Arran

+0

नियंत्रण की वास्तविक आईडी –

उत्तर

13

विधि नीचे का उपयोग कर, सभी तत्व की आईडी प्राप्त करने के लिए लूप में चलाने के सभी तत्वों को प्राप्त करने के बाद:

यहाँ मेरी पेज के प्रिंट स्क्रीन है मैं आपके मुद्दे को हल करने के लिए चुने गए दृष्टिकोण के विचार को साझा करने का प्रयास करूंगा:

getElementsByTagName('input');//returns array of elements 

2) जेएस एक्जिक्यूटर का उपयोग करके तत्व की विशेषता, आईडी विशेष रूप से प्राप्त होती है, getElementsByTagName ('input') द्वारा लौटाई गई संपूर्ण सरणी के माध्यम से पुनरावृत्ति होती है और उनकी आईडी प्राप्त होती है।

public String jsGetColor(String cssSelector){ 

    JavascriptExecutor js = (JavascriptExecutor) driver; 
    StringBuilder stringBuilder = new StringBuilder(); 
    stringBuilder.append("var x=$(\'"+css+"\');"); 
    stringBuilder.append("return x.css('color')"); 
    String res= (String) js.executeScript(stringBuilder.toString()); 
    return res; 

} 

यह केवल मेरी assumtion है कि यह कैसे की कोशिश करना संभव हो सकता है: // कोड का नमूना मैं रंग विशेषता को खोजने के लिए इस्तेमाल किया। आशा है कि यह किसी भी तरह आपकी मदद करता है)

+0

मुझे 'webElement1' से टेक्स्ट प्राप्त हो रहा है और आईडी 'webElement4' से प्राप्त हो रहा है लेकिन togather को मर्ज करने का सबसे अच्छा क्या है? –

+0

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

0

आप केवल एक आईडी की जरूरत है:

String id = driver.findElement(By.xpath("//*[contains(text(), 'Your text')]")).getAttribute("id"); 
संबंधित मुद्दे