Java 类型WebElement中的方法sendKeys(CharSequence[])不适用于参数(字符串)

Java 类型WebElement中的方法sendKeys(CharSequence[])不适用于参数(字符串),java,selenium-webdriver,webdriver,sendkeys,Java,Selenium Webdriver,Webdriver,Sendkeys,我试图向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.

我试图向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方法不将字符串值作为参数?

在向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);
}

在使用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();


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

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

在eclipse中遵循以下步骤:

右键单击java项目并选择BuildPath->Clickon 配置生成路径。。。 在“项目属性”窗口中,单击/选择左侧的Java编译器 面板 在右侧面板中,将编译器符合性级别从1.4更改为1.7 选择eclipse中的更高版本 最后单击应用并确定
现在检查你的代码。它将永远不会显示相同的错误。

再次设置JRE系统库。如果使用eclipse,请执行以下步骤:

转到项目属性 选择左侧面板上的Java构建路径->右侧的选择库选项卡 单击/选择JRE系统库[]->单击右侧的编辑按钮 设置您的首选JRE并单击Finish按钮 最后,单击“项目属性”弹出窗口中的“确定”按钮 您也可以通过删除和添加来代替编辑。这些步骤是:

右键单击项目»属性»Java构建路径 “选择库”选项卡 找到JRE系统库并将其删除 单击添加库。。。右侧按钮»添加JRE系统库 工作区默认JRE
根据java版本的不同,您需要将原语(即Char)转换为字符串。请参见:


或者切换到java版本,您可以在这里看到:

有两种可能的解决方案

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

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

我已经创建了一个详细的文章,这可能会有所帮助


您能告诉我们@您面临的问题是哪一行吗?最好有stacktrace或异常名称,可能还有HTML.driver.findElementBy.idpassword.sendKeysnag123的片段;sendkeys文本显示红色下划线,如果我们分析错误,则类型WebElement中的方法sendKeysCharSequence[]不适用于正在显示的参数字符串。如果driver.findElementBy.idrepassword.sendkeys;,是否缺少括号;?编辑框中以前没有文本,在JDK Compliance panel中编写代码时出错:在我的示例中,包含1.4的组合显示为disabled。因此,我无法将其从1.4u更改为1.7或更高版本,必须启用项目规范设置,该设置可在顶部的java编译器窗口中找到。。然后你可以更改版本,
element.sendKeys(new String[]{"Hello, selenium"});