2011-11-23 15 views
15

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

मैं एक सूची को स्टोर करने की कोशिश कर रहा हूं जिसमें तत्व के सभी तत्काल बच्चे होंगे, लेकिन उनके बच्चे (वंश) नहीं, जब मैं "*" वाक्यविन्यास का उपयोग करता हूं तो मुझे सभी तत्वों के वंशज मिलते हैं।

+0

क्या आपका मतलब है कि 'शरीर> *' आपको सेलेनियम में बॉडी टैग के सभी प्रत्यक्ष वंशज नहीं देता है? – jro

+0

क्या आप सीएसएस चयनकर्ता का उदाहरण दे सकते हैं जिसका आप उपयोग कर रहे हैं। सेलेनियम आरसी में हमें सीएसएस चयनकर्ताओं का उपयोग करके हमारे अधिकांश कोड प्राप्त नहीं हुए हैं, इसलिए मुझे आश्चर्य होगा कि सेलेनियम 2 में उन्होंने एक कदम पीछे की ओर ले लिया है। – Skuld

+0

@jro, मैंने 'someWebElement.findElement (By.cssSelector ("> *"))' का उपयोग करने का प्रयास किया है अपवाद फेंक दिया गया है: "अवैध एलिमेंटस्टेट अपवाद"। – Shiran

उत्तर

22

आपको से शुरू करने के लिए एक टैग निर्दिष्ट करना चाहिए ... यदि आप "सभी तत्व के तत्काल बच्चे" चाहते हैं, तो आपको बस सभी तत्व मिलेंगे, जो वास्तव में आप नहीं चाहते हैं।

"एक तत्व के सभी तत्काल बच्चों नहीं बल्कि अपने बच्चों को" body के लिए, body > * का उपयोग पाने के लिए।

या कोई अन्य उदाहरण, <div id='question'> के सभी प्रत्यक्ष वंशज प्राप्त करने के लिए, div#question > * का उपयोग करें।

+0

धन्यवाद! वह मददगार था !!! हमने webElement (जैसे: someWebElement.findElements (By.cssSelector ("> *")) के सापेक्षता में * * का उपयोग करने की कोशिश की: इसके बजाय: webDriver.findElements (By.cssSelector (elementLocator + "> *") । – Shiran

+3

ध्यान रखें कि यह बेहद अक्षम अक्षमकर्ता है! सीएसएस चयनकर्ताओं को दाएं से बाएं से मान्य किया जाता है ताकि चयनकर्ता के अंत में क्षुद्रग्रह (*, उर्फ ​​सार्वभौमिक चयनकर्ता) का उपयोग करके ब्राउज़र सभी तत्वों का चयन करेगा और फिर फ़िल्टरिंग शुरू कर देगा (इस मामले में: केवल तत्व जो 'शरीर' तत्व के प्रत्यक्ष बच्चे हैं) तो छोटे पृष्ठों के लिए यह कोई मुद्दा नहीं होगा लेकिन बड़े एकल पृष्ठ ऐप्स में यह चीजों को धीमा कर सकता है ... –

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

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