Reputation: 190
I am trying to send a String to the sendkeys() method, but it is not accepting and throwing an error as
my codes follows:
package healthcare;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import com.thoughtworks.selenium.Selenium;
import com.thoughtworks.selenium.webdriven.WebDriverBackedSelenium;
public class MailRegister_Webdriver {
public WebDriver driver;
public Selenium selenium;
public void openURL(){
//System.setProperty("webdriver.chrome.driver", "F:\\Library\\chromedriver.exe");
driver=new FirefoxDriver();
selenium=new WebDriverBackedSelenium(driver, "http://mail.in.com");
driver.get("http://mail.in.com");
}
public void register() throws Exception{
//driver.findElement(By.cssSelector("input.registernow")).click();
selenium.click("css=input.registernow");
Thread.sleep(3000);
driver.findElement(By.id("fname")).sendKeys("Nagesh");
selenium.select("day", "10");
selenium.select("month", "Jun");
new Select(driver.findElement(By.id("year"))).selectByVisibleText("1999");
Thread.sleep(1000);
driver.findElement(By.xpath("(//input[@name='radiousername'])[5]")).click();
Thread.sleep(2000);
driver.findElement(By.id("password")).sendKeys("nag123");
driver.findElement(By.id("repassword")).sendKeys);
driver.findElement(By.id("altemail")).sendKeys();
driver.findElement(By.id("mobileno")).sendKeys("7894561230");
driver.findElement(By.id("imageField")).click();
}
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
MailRegister_Webdriver m=new MailRegister_Webdriver();
m.openURL();
m.register();
}
}
Can somebody help on this, Why Sendkeys() method is not taking String values as arguments?
Upvotes: 11
Views: 109039
Reputation: 831
There are two possible solution for this
1- Change the compiler version from old version to 1.5 or greater.
2- Change the JRE version from JRE8 to JRE7.
I have created a detailed article on this may be it will help.
http://learn-automation.com/solution-for-sendkeyscharsequence-in-selenium/
Upvotes: 2
Reputation: 2446
Depending on the version of java you need to either convert the primitive (i.e. Char) to String (look here: http://tech.deepumohan.com/2013/03/java-how-to-convert-primitive-char-to.html)
Or switch to a java version that would do it for you (see here: http://java-performance.info/changes-to-string-java-1-7-0_06/)
Upvotes: 0
Reputation: 37756
Set the JRE System Library again. If you use eclipse follow the steps below:
Instead of editing you can also do by deleting and adding. The steps are:
Upvotes: -1
Reputation: 358
It has a simple solution. Change your compiler compliance level from 1.4 to 1.7.
Follow these steps in your eclipse:
Now check your code. it will never show the same error.
Upvotes: 34
Reputation: 39
element.sendKeys(new String[]{"Hello, selenium"});
My code looks like this, it's working.
Upvotes: 3
Reputation: 459
You can try by replacing your following lines of code:
driver.findElement(By.id("password")).sendKeys("nag123");
driver.findElement(By.id("repassword")).sendKeys);
driver.findElement(By.id("altemail")).sendKeys();
driver.findElement(By.id("mobileno")).sendKeys("7894561230");
driver.findElement(By.id("imageField")).click();
to
driver.findElement(By.id("password")).sendKeys("nag123");
driver.findElement(By.id("repassword")).sendKeys("");
driver.findElement(By.id("altemail")).sendKeys("");
driver.findElement(By.id("mobileno")).sendKeys("7894561230");
driver.findElement(By.id("imageField")).click();
Upvotes: 0
Reputation: 361
Try to click into the WebElement before you sending keys to it:
public static void login(WebDriver driver, String userName, String password) {
driver.get("loginPage.html");
Thread.sleep(3000);
driver.findElement(By.id("username")).click();
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys(userName);
Thread.sleep(TestConfiguration.time);
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys(password);
Thread.sleep(3000);
driver.findElement(By.name("login")).click();
Thread.sleep(3000);
}
You should use clear() method to clear the input field before using sendKeys().
Upvotes: 0