CSS चयनकर्ता (आईडी में पाठ का हिस्सा होता है)


92

मेरा एक सवाल है। मेरे पास कुछ इस तरह के तत्व हैं:

<a> id वाला तत्व = someGenerated Some: Same: 0: name

<a> id वाला तत्व = someGenerated Some: Same: 0: उपनाम

<a> id वाला तत्व = someGenerated Some: Same: 1: name

<a> id वाला तत्व = someGenerated Some: Same: 1: उपनाम

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


क्या आप <a>उन टैग्स के कुछ वास्तविक उदाहरण जोड़ सकते हैं जिन्हें आप चुनना चाहते हैं और जिन्हें आप नहीं चाहते हैं। असली कोड को देखने में मदद करना आसान होगा।
एंडब

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

लेकिन मैं इसे अन्य तरीके से समझा सकता हूं। Id विशेषताओं में अगले शामिल हैं: कुछ उत्पन्न वर्ण + कुछ स्थिर वर्ण +: elementIndexInTable: + स्तंभ नाम तालिका में
TarasLviv

और जो आप चाहते हैं, उसके लिए क्या मापदंड हैं?
तर्केन

जवाबों:


144

इसे इस्तेमाल करे:

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

इससे आपको aid वाले सभी तत्व मिल जाएंगे

कुछ समान

और आईडी को समाप्त करना है

नाम


खैर, आईडी * मेरे लिए काम नहीं किया और यह एक वेब तत्व के लिए मूल्यांकन नहीं किया जा सकता है। मैंने इसका इस्तेमाल iframe खोजने के लिए किया था, जिसमें <constant><variable><constant>नाम की तरह id है । //driver.findElements(By.xpath("//iframe[contains(@id*,'FrameID')]")).size();जहां FrameID हिस्सा शुरू हो रहा है। वैसे भी, //a[contains(@id,'Some:Same') and contains(@id,'name')]मेरे लिए चाल चली। तो +1 करने के लिए आप साथी।
अनुजिन

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

1
@CosminO आप *अगले करने की जरूरत है id?
कोकड

@ कॉक्डूड * * ऑपरेटर का मतलब है कि इसमें ऑपरेटर के बाद कम से कम मूल्य होना चाहिए। यह दूसरी शर्त के साथ मिलकर काम करता है कि ऑपरेटर $ = का उपयोग करके इसे किसी और चीज़ के साथ समाप्त करना होगा = इसे गहराई से स्पष्टीकरण के लिए देखें w3schools.com/css/css_attribute_selectors.asp लघु उत्तर। * आईडी के बगल में नहीं है, यह = के बगल में है और यह विशेष अर्थ के साथ एक ऑपरेटर बनाता है
CosminO

21
<div id='element_123_wrapper_text'>My sample DIV</div>

ऑपरेटर ^ - दिए गए मूल्य से शुरू होने वाले तत्वों का मिलान करें

div[id^="element_123"] {

}

ऑपरेटर $ - ऐसे तत्वों से मेल खाता है जो दिए गए मान से समाप्त होते हैं

div[id$="wrapper_text"] {

}

ऑपरेटर * - ऐसे तत्वों से मेल खाता है, जिनमें एक मान दिया गया है

div[id*="wrapper_text"] {

}

8

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.