2015-06-04 10 views
8

मैं वेब पेजसेलेनियम WebDriver के साथ पाठ द्वारा एक वेब तत्व का चयन करने के लिए कैसे, जावा

<div class="b-datalist__item__addr">[email protected]</div> 

मैं सेलेनियम WebDriver के लिए जावा के साथ कोडिंग कर रहा हूँ पर निम्नलिखित तत्व खोजने की जरूरत है।
driver.findElement(By.cssSelector(the-selector).click कमांड के साथ इसका उपयोग करने के लिए इस तत्व के लिए सटीक सीएसएस चयनकर्ता की आवश्यकता है।
div[class='b-datalist__item__addr'] चयनकर्ता पर्याप्त नहीं है क्योंकि मुझे [email protected] टेक्स्ट के अनुसार खोजना चाहिए जो एक लिंक नहीं है इसलिए मैं findElement(By.linkText()) कमांड का उपयोग नहीं कर सकता।

उत्तर

13

सीएसएस आपको पाठ आधारित खोज करने की अनुमति नहीं देता है। xpath एकमात्र विकल्प है।

//div[contains(text(),'[email protected]')] 
+1

यह काम करता है, धन्यवाद! – Eliyahu

+0

खुशी है कि यह आपकी मदद करता है – Saifur

+0

क्या क्लासनाम या उपरोक्त xpath चयनकर्ता को कोई अतिरिक्त पैरामीटर जोड़ने का कोई तरीका है? – Eliyahu

1

contains(node, substring) समस्या का समाधान हो सकता है, लेकिन ध्यान दें कि यदि इसी तरह पाठ सामग्री, उदा कई तत्व हैं

विधेय [contains(text(),'[email protected]')] उन सभी से मेल खाएगी

इस मामले में 012 का उपयोग करना बेहतर है:

//div[starts-with(text(),'[email protected]')] 

या सटीक पाठ सामग्री के लिए आवश्यक तत्व लाने:

//div[text()='[email protected]'] 
+0

मुझे यह पता है। धन्यवाद। – Eliyahu

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