मैं एक जीडब्ल्यूटी इनपुट तत्व में पाठ इनपुट करने के लिए सेलेनियम वेबड्राइवर का उपयोग करने की कोशिश कर रहा हूं जिसमें डिफ़ॉल्ट टेक्स्ट है, "उपयोगकर्ता आईडी दर्ज करें"। यहां ऐसे कुछ तरीके मैं काम करने के लिए इसे पाने के लिए कोशिश की है इस प्रकार हैं:सेलेनियम के साथ इनपुट तत्व से मैं डिफ़ॉल्ट टेक्स्ट को लगातार कैसे हटा सकता हूं?
searchField.click();
if(!searchField.getAttribute("value").isEmpty()) {
// clear field, if not already empty
searchField.clear();
}
if(!searchField.getAttribute("value").isEmpty()) {
// if it still didn't clear, click away and click back
externalLinksHeader.click();
searchField.click();
}
searchField.sendKeys(username);
अजीब बात यह ऊपर केवल समय की कुछ काम करता है। कभी-कभी, यह "उपयोगकर्ता आईडी दर्ज करें" की तलाश में समाप्त होता है, मूल रूप से डिफ़ॉल्ट पाठ के बाद "उपयोगकर्ता नाम" टाइप करना शुरू होता है - और इसे समाप्त भी नहीं करता है।
किसी अन्य बेहतर, अधिक विश्वसनीय तरीके से एक GWT तत्व से डिफ़ॉल्ट पाठ को साफ़ करने के लिए?
जोड़ने के लिए संपादित: इनपुट तत्व का HTML। दुर्भाग्य से, जेएस/जीडब्ल्यूटी गर्मता के लिए धन्यवाद, देखने के लिए बहुत कुछ नहीं है। यहाँ क्षेत्र जब यह चयन रद्द किया है:
<input type="text" class="gwt-TextBox empty" maxlength="40">
के बाद मैं इसे क्लिक किया और इसे मैन्युअल रूप से ध्यान केंद्रित किया है, डिफ़ॉल्ट पाठ और "खाली" वर्ग निकाल दिए जाते हैं।
जेएस से setDefaultText()
को onBlur()
और onChange()
दोनों को रिक्त टेक्स्ट फ़ील्ड में परिवर्तन के परिणामस्वरूप कहा जाता है। मान लीजिए यही कारण है कि searchField.clear()
मदद नहीं कर रहा है।
मैंने डीबग मोड में इस विधि के माध्यम से भी कदम उठाया है, और उस स्थिति में, यह कभी काम नहीं करता है। सामान्य रूप से चलाने पर, यह अधिकांश समय काम करता है। मैं नहीं कह सकता क्यों, यद्यपि।
आप नियंत्रण से HTML की कॉपी पोस्ट कर सकते हैं, और वहाँ किसी भी जावास्क्रिप्ट कि नियंत्रण के साथ सूचना का आदान प्रदान होता है? – Arran
क्या 'इनपुट' में डिफ़ॉल्ट टेक्स्ट' प्लेसहोल्डर 'एचटीएमएल 5 विशेषता से आता है, या क्या किसी प्रकार का' ऑनफोकस 'और' ऑनब्लर 'जावास्क्रिप्ट है? –