我正在尝试将一个String发送到sendkeys()方法,但它不接受并抛出错误
我的代码如下:
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();
}
}
有人可以为此提供帮助,为什么Sendkeys()方法没有将String值作为参数?
答案 0 :(得分:32)
它有一个简单的解决方案。将编译器合规性级别从1.4更改为1.7。
在日食中遵循以下步骤:
现在检查你的代码。它永远不会显示相同的错误。
答案 1 :(得分:3)
element.sendKeys(new String[]{"Hello, selenium"});
我的代码看起来像这样,它正在运作。
答案 2 :(得分:2)
这个
有两种可能的解决方案1-将编译器版本从旧版本更改为1.5或更高版本。
2-将JRE版本从JRE8更改为JRE7。
我已经创建了一篇关于此的详细文章可能会有所帮助。
http://learn-automation.com/solution-for-sendkeyscharsequence-in-selenium/
答案 3 :(得分:0)
在向其发送密钥之前,请尝试单击WebElement:
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);
}
在使用sendKeys()之前,您应该使用clear()方法清除输入字段。
答案 4 :(得分:0)
您可以尝试替换以下代码行:
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();
到
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();
答案 5 :(得分:0)
再次设置JRE系统库。如果您使用eclipse,请按照以下步骤操作:
您也可以通过删除和添加来进行编辑。步骤是:
答案 6 :(得分:0)
根据java的版本,您需要将基元(即Char)转换为String(查看此处:http://tech.deepumohan.com/2013/03/java-how-to-convert-primitive-char-to.html)
或切换到可以为您完成的java版本(请参阅此处:http://java-performance.info/changes-to-string-java-1-7-0_06/)