2012-07-30 20 views
16

पर आधारित डीओएम में तत्व कैसे ढूंढें I कस्टम एट्रिब्यूट के आधार पर डीओएम में तत्व कैसे ढूंढ सकता हूं?सेलेनियम वेबड्राइवर: कस्टम विशेषता

उदाहरण के लिए:

डोम विशेषताओं HTML दृश्य में मौजूद नहीं हैं। डीओएम इंस्पेक्टर का उपयोग करके मैं कस्टम विशेषता की पहचान करने में सक्षम हो सकता है अद्वितीय है।

driver.findElement(By.id("SimpleSearch:dIndicesGrid:1:Value")).getAttribute("_celltype"); 

यहां _celltype कस्टम विशेषता है। यह विशेषता HTML दृश्य में दिखाई नहीं दे रही है।

उत्तर

18

आपको xpath द्वारा तत्व का पता लगाना होगा।

किसी भी तत्व मान 'celltype' के साथ _celltype विशेषता है कि पाते हैं निम्नलिखित:

driver.findElement(By.xpath("//*[@_celltype='celltype']")) 

क्या आप जानते तत्व किस प्रकार यह है कि आप इसे अधिक विशिष्ट हो सकता है। उदाहरण के लिए, यदि आप जानते हैं कि वे div टैग कर रहे हैं, कार्य करें:

driver.findElement(By.xpath("//div[@_celltype='celltype']")) 
+1

इस्तेमाल कर सकते हैं, लेकिन मैं _celltype से मूल्य प्राप्त की जरूरत है। – user1563042

+0

क्षमा करें, मुझे यकीन नहीं है कि मैं आपका लक्ष्य समझता हूं। क्या आप इसकी _celltype विशेषता के आधार पर कोई तत्व ढूंढने का प्रयास कर रहे हैं या आप किसी तत्व के _celltype विशेषता मान को खोजने का प्रयास कर रहे हैं? मेरे लिए ऐसा लगता है कि पूर्व को इस उत्तर से कवर किया गया है और बाद में आपके प्रश्न में कोड द्वारा कवर किया गया है। क्या आप जो खोज रहे हैं उसे स्पष्ट कर सकते हैं, शायद नमूना HTML दें और आप किस मूल्य/तत्व से प्राप्त करने का प्रयास कर रहे हैं? –

+0

क्षमा करें मैं वेब तत्व के कस्टम डॉम विशेषता (_celltype) को पढ़ने के तरीके से पूछने का प्रयास कर रहा था। – user1563042

2

xPath द्वारा तत्व खोजें:

WebElement element = driver.findElement(By.xpath("xpath_link")); 

xpath_link = //*[@_celltype='celltype']; // This is sample xpath; 

System.out.println(element.getText()); 

यह 'celltype' फ़ील्ड का पाठ मिल जाएगा और इसका मूल्य प्रदर्शित करता है।

14

XPath बुराई है, तो आप इस बजाय

By.CssSelector("[_celltype='celltype']"); 
+1

सीएसएस चयनकर्ता बेहतर है। भी आसान पढ़ता है। –

+1

यह भी तेज़ है। मैं एक ऐसा एप्लीकेशन चला रहा हूं जिसमें XPath मूल रूप से किसी भी अन्य चयनकर्ता की तुलना में 6 गुना धीमा हो। चूंकि मुझे इस ऑपरेशन को कई बार चलाने की ज़रूरत है, इसलिए यह मेरे ऐप के कुल रनिंग समय में एक बड़ा अंतर बनाता है। –

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