参数WebElement中的方法sendKeys(CharSequence [])不适用于参数(String)

mic*_*key 10 java webdriver sendkeys selenium-webdriver

我试图将一个字符串发送到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();
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以为此提供帮助,为什么Sendkeys()方法没有将String值作为参数?

小智 33

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

在你的日食中遵循以下步骤:

  1. 右键单击您的java项目并选择Build Path - >单击
    Configure Build Path ...
  2. 在项目属性窗口中,单击/选择左侧 面板中的Java Compiler
  3. 在右侧面板中,将编译器合规性级别从1.4更改为1.7
    (选择eclipse中的更高版本)
  4. 最后点击Apply,然后单击OK

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


小智 0

在向 WebElement 发送密钥之前尝试单击该 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);
}
Run Code Online (Sandbox Code Playgroud)

在使用sendKeys()之前,您应该使用clear()方法清除输入字段。