স্পষ্ট একটি সাধারণ কল () এটি ডিওমে প্রদর্শিত হবে যে সংশ্লিষ্ট ইনপুট / টেক্সারিয়া উপাদানটির এখনও তার পুরানো মান রয়েছে, সুতরাং সেই উপাদানটিতে নিম্নলিখিত কোনও পরিবর্তন (যেমন উপাদানটিকে একটি নতুন মান দিয়ে পূরণ করা) সময়মতো প্রক্রিয়া করা হবে না।
আপনি যদি সেলেনিয়াম উত্স কোডটি একবার দেখে থাকেন তবে দেখতে পাবেন যে পরিষ্কার () - পদ্ধতিটি নীচের মন্তব্যে ডকুমেন্টেড রয়েছে:
/ ** যদি এই উপাদানটি কোনও পাঠ্য প্রবেশের উপাদান হয় তবে এটি মানটি সাফ করবে। অন্যান্য উপাদানগুলির উপর কোনও প্রভাব নেই। পাঠ্য প্রবেশের উপাদানগুলি INPUT এবং TEXTAREA উপাদান। নোট করুন যে এই ইভেন্টটি দ্বারা চালিত ইভেন্টগুলি আপনি প্রত্যাশার মতো নাও হতে পারে। বিশেষত, আমরা কোনও কীবোর্ড বা মাউস ইভেন্টগুলি ফায়ার করি না। আপনি যদি কীবোর্ড ইভেন্টগুলি চালিত হয়েছে তা নিশ্চিত করতে চান তবে ব্যাকস্পেস কী দিয়ে l @link #sendKeys (CharSequence ...) like এর মতো কিছু ব্যবহার করার কথা বিবেচনা করুন। আপনি কোনও পরিবর্তন ইভেন্ট পেয়েছেন তা নিশ্চিত করতে, ট্যাব কী দিয়ে l @link #sendKeys (CharSequence ...) to এ কল করার পরে বিবেচনা করুন। * /
সুতরাং একটি ইনপুট / টেক্সেরিয়া (ইতিমধ্যে একটি মান রয়েছে এমন উপাদান) এবং এটিতে একটি নতুন মান নির্ধারণ করার জন্য এই সহায়ক ইঙ্গিতটি ব্যবহার করে আপনি নীচের মতো কিছু কোড পাবেন:
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;
}
এই কোডটি জাভা হওয়ার জন্য এবং পাইথন নয় বলে দুঃখিত। এছাড়াও, আমাকে একটি অতিরিক্ত "ওয়েটউন্টিলপেজআইএসআরডি () - এড়িয়ে যেতে হয়েছিল - এমন পদ্ধতি যা এই পোস্টটিকে আরও দীর্ঘ করে দেবে।
আশা করি এটি আপনার সেলেনিয়ামের যাত্রায় আপনাকে সহায়তা করবে!