2011-03-19 17 views
6

मैं क्लास नाम "एक्ट" या "डक्ट"किसी भी चयनकर्ता के लिए सेलेनियम findElements() विधि में या कंडीशन का उपयोग कैसे करें?

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

List<WebElement> nL2 = driver.findElements(By.className("act"));

कुछ इस के समान; ताकि मुझे प्रत्येक वर्ग के लिए दो अलग-अलग पंक्तियां लिखने की आवश्यकता न हो।

//this is not working

List<WebElement> nL2 = driver.findElements(By.className("act | dact"));

धन्यवाद!

+1

यह XPath नहीं है। यह XPath '// WebElement [@class [शामिल है (concat ('',।, ''), 'Act') या इसमें शामिल है (concat ('',।, ''), 'Dact')]] –

+0

@ अलेजैंड्रो, मेरी गलती। मेरे प्रश्न को संशोधित किया। असल में मैं किसी भी चयनकर्ता का उपयोग कर fineElements() विधि में या स्थिति का उपयोग करना चाहता हूं। – OverrockSTAR

उत्तर

7

क्या आप सिर्फ दो सूचियों को जोड़ सकते हैं?

List<WebElement> act = driver.findElements(By.className("act")); 
List<WebElement> dact = driver.findElements(By.className("dact")); 
List<WebElement> all = new ArrayList<WebElement>(); 
all.addAll(act); 
all.addAll(dact); 

वैकल्पिक रूप से, आप एक xpath खोजकर्ता @Alejandro

List<WebElement> all = driver.findElements(By.xpath("//*[@class='act' or @class='dact']")); 
+0

धन्यवाद डेव, मैं इस तरह से करने के बारे में सोच नहीं सकता। – OverrockSTAR

+0

क्या हम 'By.className ("X या Y") का भी उपयोग कर सकते हैं; 'या यह या स्थिति केवल XPath पर लागू होती है? – OverrockSTAR

+1

'className' एक एकल वर्ग का नाम लेता है। –

3

ने सुझाव दिया मैं जानता हूँ कि इस सवाल का

की तरह एक सीएसएस चयनकर्ता का उपयोग करने के लिए कर रहा है वास्तव में पुराने लेकिन शायद सबसे आसान तरीका यह करने के लिए है इस्तेमाल कर सकते हैं
driver.findElements(By.cssSelector(".act, .dact")); 

आपको XPath को सीएसएस चयनकर्ताओं को प्राथमिकता देना चाहिए क्योंकि ब्राउज़र समर्थन बेहतर है और वे अधिक प्रदर्शनशील हैं (और मुझे लगता है कि वे सीखना/समझना आसान है)। सीएसएस चयनकर्ता सब कुछ कर सकते हैं By.className() प्लस एक बहुत कुछ और कर सकते हैं। वे बहुत शक्तिशाली और बहुत उपयोगी हैं।

कुछ सीएसएस चयनकर्ता संदर्भ शुरू करने के लिए संदर्भ।

W3C CSS Selector Reference

Sauce Labs CSS Selector Tips

+0

यह आधुनिक समय में अब तक का बेहतर समाधान है। – Syndog

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