स्पष्ट () के एक साधारण कॉल के साथ यह डोम में प्रकट होता है कि संबंधित इनपुट / टेक्स्टारिया घटक का अभी भी अपना पुराना मूल्य है, इसलिए उस घटक पर कोई भी निम्न परिवर्तन (जैसे एक नए मूल्य के साथ घटक को भरना) समय में संसाधित नहीं किया जाएगा।
यदि आप सेलेनियम स्रोत कोड पर एक नज़र डालें तो आप पाएंगे कि स्पष्ट () - विधि निम्नलिखित टिप्पणी के साथ प्रलेखित है:
/ ** यदि यह तत्व एक पाठ प्रविष्टि तत्व है, तो यह मान को साफ कर देगा। अन्य तत्वों पर कोई प्रभाव नहीं है। पाठ प्रविष्टि तत्व INPUT और TEXTAREA तत्व हैं। ध्यान दें कि इस ईवेंट द्वारा निकाल दी गई घटनाएं वैसी नहीं हो सकती हैं जैसी आप अपेक्षा करते हैं। विशेष रूप से, हम किसी भी कीबोर्ड या माउस ईवेंट को फायर नहीं करते हैं। यदि आप यह सुनिश्चित करना चाहते हैं कि कीबोर्ड की घटनाओं को निकाल दिया जाए, तो बैकस्पेस कुंजी के साथ {@link #sendKeys (CharSequence ...)} का उपयोग करने पर विचार करें। यह सुनिश्चित करने के लिए कि आपको एक परिवर्तन ईवेंट मिल रहा है, टैब कुंजी के साथ {@link #sendKeys (CharSequence ...)} पर कॉल करें। * /
तो इस उपयोगी संकेत का उपयोग करके एक इनपुट / टेक्स्टारिया (एक घटक जो पहले से ही एक मूल्य है) को साफ़ करने के लिए है और इसके लिए एक नया मान असाइन करें, आपको निम्न जैसा कुछ कोड मिलेगा:
public void waitAndClearFollowedByKeys(By by, CharSequence keys) {
LOG.debug("clearing element");
wait(by, true).clear();
sendKeys(by, Keys.BACK_SPACE.toString() + keys);
}
public void sendKeys(By by, CharSequence keysToSend) {
WebElement webElement = wait(by, true);
LOG.info("sending keys '{}' to {}", escapeProperly(keysToSend), by);
webElement.sendKeys(keysToSend);
LOG.info("keys sent");
}
private String escapeProperly(CharSequence keysToSend) {
String result = "" + keysToSend;
result = result.replace(Keys.TAB, "\\t");
result = result.replace(Keys.ENTER, "\\n");
result = result.replace(Keys.RETURN, "\\r");
return result;
}
इस कोड के जावा और पायथन न होने के लिए क्षमा करें। इसके अलावा, मुझे एक अतिरिक्त "WaitUntilPageIsReady () - विधि को छोड़ना पड़ा, जो इस पोस्ट को बहुत लंबा बना देगा।
आशा है कि यह सेलेनियम के साथ आपकी यात्रा में मदद करता है!