I'm getting an error when trying to pass in a username and password to a form field using sendKeys
. Below is my User Class followed by my test class. Does anyone know why the application is not passing a string?
org.openqa.selenium.WebDriverException: unknown error: keys should be a string
public class User {
public static String username;
public static String password;
public User() {
this.username = "username";
this.password = "password";
}
public String getUsername(){
return username;
}
public String getPassword(){
return password;
}
}
@Test
public void starWebDriver() {
driver.get(domainURL.getURL());
WebElement userInputBox, passInputBox;
userInputBox = driver.findElement(By.xpath("//input[@name='email']"));
passInputBox = driver.findElement(By.xpath("//input[@name='password']"));
System.out.println("before sending keys");
userInputBox.sendKeys(User.username);
}
You're accessing static properties that are never initialized (null) because the constructor is never called.
You can either set the static properties directly or take out the static context and initialize a User in your test.
Ex.
public class User {
public String username;
public String password;
public User() {
this.username = "username";
this.password = "password";
}
public String getUsername(){
return username;
}
public String getPassword(){
return password;
}
}
@Test
public void starWebDriver() {
User user = new User();
driver.get(domainURL.getURL());
...
userInputBox.sendKeys(user.username);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With