参数WebElement中的方法sendKeys(CharSequence )不适用于参数(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值作为参数?

它有一个简单的解决方案。 将编译器合规性级别从1.4更改为1.7。

在日食中遵循以下步骤:

  1. 右键单击您的java项目,然后选择Build Path – > Click on
    配置构建路径…
  2. 在项目属性窗口中,单击/选择左侧的Java Compiler
    面板
  3. 在右侧面板中,将编译器合规性级别从1.4更改为1.7
    (选择eclipse中哪个版本更高版本)
  4. 最后点击ApplyOK

现在检查你的代码。 它永远不会显示相同的错误。

 element.sendKeys(new String[]{"Hello, selenium"}); 

我的代码看起来像这样,它正在工作。

有两种可能的解决方案

1-将编译器版本从旧版本更改为1.5或更高版本。

2-将JRE版本从JRE8更改为JRE7。

我已经创建了一篇关于此的详细文章可能会有所帮助。

http://learn-automation.com/solution-for-sendkeyscharsequence-in-selenium/

在向其发送密钥之前,请尝试单击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()方法清除输入字段。

您可以尝试替换以下代码行:

  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(); 

再次设置JRE系统库。 如果您使用eclipse,请按照以下步骤操作:

  1. 转到项目属性
  2. 在左侧面板中选择Java Build Path – >选择右侧的Libraries选项卡
  3. 单击/选择JRE系统库[] – >单击右侧的“ 编辑”按钮
  4. 设置首选JRE,然后单击“ 完成”按钮
  5. 最后,从项目属性弹出窗口中单击“ 确定”按钮

您也可以通过删除和添加来进行编辑。 步骤是:

  1. 右键单击项目»属性»Java构建路径
  2. 选择“库”选项卡
  3. 找到JRE系统库并将其删除
  4. 单击右侧的添加库…按钮»添加JRE系统库(工作区默认JRE)

根据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/ )