Hello Guys,
We will learn a small topic which is also an interview question in this post.
What will happen if we pass NULL as argument in sendKeys() method?
Above question has two answers based on how you are passing null values to sendKeys method.
Way 1: Passing null directly to sendKeys method as sendKeys(null).
Java Program:
Output:
Explanation: sendKeys method was expecting an argument of type char sequence but we pass null which is invalid. So it throws IllegalArgumentException.
Way 2: Passing a null string to sendKeys
Java Program:
Output:
Explanation: In this case, sendKeys method will not be able to identify null before it is processed for typing. That is the reason in this case WebDriverException is thrown.
Above scenario is generally faced by automation tester while scripting. Well you know what is mistake and you can take care of it.
If you have any doubt, feel free to comment below.
If you like my posts, please like, comment, share and subscribe.
#ThanksForReading
#HappySelenium
I have also observed same issue highlighted by @Shreyansh Jain.
Hi Gaurav,
Can you use debugger and let me know where control goes for sendKeys method?
I tried the same code in my friend’s system and there i am getting Illegal Argument Exception.
It should be some version issue.
public class NullUsingSendKeys {
public static void main(String[] args) {
System.setProperty(“webdriver.gecko.driver”, “geckodriver path”);
WebDriver driver = new FirefoxDriver();
driver.get(“http://ecommerce.macomal.com/admin/login.aspx”);
System.out.println(“url launched…”);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
System.out.println(“Entering value….”);
WebElement ele=driver.findElement(By.xpath(“//*[@id=’l_email’]”));
ele.sendKeys(null);
System.out.println(“Data entered….”);
}
}
Selenium Version – 3.7.1 Chrome Version – 63.0.3239.132 FireFox Version – 46.0
Hi Shreyansh,
I am using selenium 3.8.1 with chroedriver 2.35 and getting same exceptions as per post. Pls share your code to analyse.
If we see implementation of sendKeys method, it also shows illegal argument exception in case of null.
public void sendKeys(CharSequence… keysToSend) {
if (keysToSend == null) {
throw new IllegalArgumentException(“Keys to send should be a not null CharSequence”);
} else {
File localFile = this.fileDetector.getLocalFile(keysToSend);
if (localFile != null) {
String remotePath = this.upload(localFile);
keysToSend = new CharSequence[] { remotePath };
}
this.execute(“sendKeysToElement”, ImmutableMap.of(“id”, this.id, “value”, keysToSend));
}
}
Passing null directly to sendKeys method as sendKeys(null) in Firefox and Chrome gives me null pointer exception. I tried with url http://ecommerce.macomal.com/admin/login.aspx , When passing using 2nd way it gives exception in chrome but no exception in Firefox browser.
Ohh!! Is it?? Which Selenium version and browser version??
The same which Shreyansh said happen to me:
using Selenium version: 2.53.1
FF browser version: 45
Thanks. I need to revisit this post.