मान लें कि आपके पास प्रस्तुत किए गए गतिशील आईडी हैं, पहले एहसास करें कि सेलेनियम की click विधि locator तर्क लेती है। एक सरल तरीका एक लोकेटर को निर्दिष्ट करना है जो आपके निरंतर "gwt-uid-" उपसर्ग से शुरू होने वाली आईडी पाता है। आप प्रौद्योगिकी के आपकी पसंद पर निर्भर करता है, अपने click
विधि करने के लिए तर्क के रूप में इन लोकेटर के किसी भी उपयोग कर सकते हैं:
== XPath ==
//input[starts-with(@id, 'gwt-uid-')]
== CSS ==
css=input[id^='gwt-uid-']
== DOM ==
dom=for each (e in document.getElementsByTagName('input')) if (e.id && (e.id.substr(0, 'gwt-uid-'.length) === 'gwt-uid-')) e
फ़ुटनोट 1: मैं GWT उपयोग नहीं किया है, इसलिए मेरे ऊपर दिए गए उदाहरणों मान यह अभी भी एक डालता है <input>
तत्व में चेक बॉक्स; आवश्यकतानुसार समायोजित करें।
फुटनोट 2: सेलेनियम नियमित अभिव्यक्ति सहायता प्रदान करते हैं, के रूप में एडम सूचित करता है, लेकिन इस मामले में उसके साथ दो मुद्दे हैं: के बजाय "regex:": (1) उपसर्ग "regexp" है। (2) सेलेनियम की click
विधि regexp उपसर्ग का समर्थन करता है! (मेरे अनुभवजन्य सबूत बताते हैं कि लोकेटर सेलेनियम में रेगुलर एक्सप्रेशन का उपयोग नहीं करते, केवल पाठ मिलान तर्क करते हैं।)
स्रोत
2011-03-27 17:19:49
यदि सभी गतिशील आईडी 'gwt-uid-' से शुरू हो रही हैं, तो आप कैसे हल करेंगे? ज्यादातर ids gwt-uid-withsomenumber हैं जो सत्रों में अलग है। – Swagatika
मेरे सभी 3 उदाहरण बिल्कुल ठीक हैं, इसलिए मुझे यकीन नहीं है कि आप और क्या पूछ रहे हैं। (हालांकि तकनीकी रूप से मुझे उपसर्ग का पालन करने के लिए एक संख्या की आवश्यकता नहीं है, लेकिन इससे उसमें झूठे सकारात्मक मिलान होने की संभावना नहीं है।) –