2012-08-28 10 views
62

मेरे पास एक प्रश्न है। मैं तत्वों कुछ इस तरह है: वही:: 0:सीएसएस चयनकर्ता (आईडी में पाठ का हिस्सा शामिल है)

<a> आईडी के साथ तत्व = कुछ someGenerated नाम आईडी के साथ

<a> तत्व = कुछ someGenerated: वही: 0: उपनाम

<a> आईडी के साथ तत्व ऐसा ही:: 1: = कुछ someGenerated नाम आईडी के साथ

<a> तत्व = कुछ someGenerated: वही: 1: उपनाम

मुझे नाम प्राप्त करने के लिए सीएसएस चयनकर्ता की आवश्यकता है। समस्या यह है कि मुझे नहीं पता कि इसे कैसे प्राप्त किया जाए। मैंने a[id*='Some:Same'] की कोशिश की - यह सभी <a> तत्वों को वापस कर दिया। मैं तत्व प्राप्त कर सकता हूं जो आईडी नाम के साथ समाप्त होता है। लेकिन मुझे यह विचार पसंद नहीं है। मुझे लगता है कि यह किसी अन्य चयनकर्ता के साथ किया जा सकता है।

+0

गोपनीय नीति के कारण मैं वास्तविक उदाहरण नहीं जोड़ सकता :( – TarasLviv

+0

लेकिन मैं इसे अन्य तरीकों से समझा सकता हूं। आईडी विशेषताओं में अगला शामिल है: कुछ जेनरेट किए गए वर्ण + कुछ स्थिर वर्ण +: elementIndexInTable: + तालिका में कॉलम नाम – TarasLviv

उत्तर

89

इस प्रयास करें:

a[id*='Some:Same'][id$='name'] 

यह आपको

युक्त आईडी के साथ सभी a तत्वों मिल जाएगा कुछ: वही

और आईडी

में समाप्त होने वाले है

नाम ई

+0

ठीक है, आईडी * मेरे लिए काम नहीं करता है और कहा जाता है कि इसका मूल्यांकन वेब तत्व पर नहीं किया जा सकता है। मैंने इसे आईफ़्रेम खोजने के लिए उपयोग किया है जिसमें आईडी 'नाम है। /driver.findElements(By.xpath ("// iframe [शामिल है (@id *, 'frameID')]"))। आकार(); 'जहां फ्रेमआईडी भाग शुरू हो रहा है। वैसे भी, // // a [include (@ आईडी, 'कुछ: वही') और इसमें शामिल है (@ आईडी, 'name')] 'मेरे लिए चाल है। तो आप को +1 करें। – anujin

+2

आपको इस जवाब से XPath चयनकर्ता को हटा देना चाहिए, यह कुछ भी नहीं जोड़ रहा है और है केवल पानी muddying – Liam

5

एकमात्र चयनकर्ता जो मैं देखता हूं वह a[id$="name"] है ("नाम" द्वारा परिष्कृत आईडी के साथ सभी लिंक) लेकिन यह उतना ही प्रतिबंधित नहीं है जितना इसे करना चाहिए।

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