2012-09-19 22 views
14

में विशेषताओं में XPath वाइल्डकार्ड का उपयोग करना मैं अपने गुणों में वाइल्डकार्ड का उपयोग करना चाहता हूं।सेलेनियम वेबड्राइवर

//input[@id='activation:j_idt84:voId:1']` 

मैं क्योंकि संख्या गतिशील है एक वाइल्डकार्ड के साथ j_idt संख्या बदलना चाहते हैं: उदाहरण के लिए, यह मेरा नियमित XPath है। मैं इस तरह कुछ ढूंढ रहा हूं:

//input[@id='activation:*:voId:1'] 

मुझे नहीं पता कि इस मुद्दे को कैसे हल किया जाए। क्या मेरा विचार भी संभव है?

उत्तर

24

दुर्भाग्यवश XPath में कोई स्ट्रिंग वाइल्डकार्ड नहीं है। हालांकि आप इस तरह की चीजों को फ़िल्टर करने के लिए एकाधिक और starts-with() का उपयोग कर सकते हैं।

//input[starts-with(@id, 'activation:') and contains(@id, ':voId:1')] 

इसके अलावा, इस सवाल का जवाब भी उपयोगी हो सकता है: selenium: Is it possible to use the regexp in selenium locators

+0

धन्यवाद, यह समाधान काम करता है पूरी तरह से! –

2

आप कर सकते हैं उपयोग स्ट्रिंग matches समारोह जो XPath 2.0 में उपलब्ध है का उपयोग कर वाइल्डकार्ड:

//input[matches(@id, 'activation:.*:voId:1')] 
+0

इस तरह से मेरे कोड में काम नहीं करता है। जटिल 857 कार्यों का समाधान। लेकिन बहुत बहुत धन्यवाद! –

+2

सेलेनियम [अंतर्निहित ब्राउज़र में xpath प्रतिनिधि] [http://code.google.com/p/selenium/issues/detail?id=3009) ताकि ब्राउज़र उन्हें लागू करने के बाद इसे काम करना शुरू कर देना चाहिए। – complex857

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