【问题标题】:Selenium shows error "The method sendKeys(CharSequence[]) in the type WebElement is not applicable for the arguments (String)"Selenium 显示错误“WebElement 类型中的方法 sendKeys(CharSequence[]) 不适用于参数 (String)”
【发布时间】:2015-09-18 12:12:55
【问题描述】:

通过 JAVA 执行 selenium 脚本时,出现以下错误。

错误:“WebElement 类型中的方法 sendKeys(CharSequence[]) 是 不适用于参数(字符串)"

我的代码:

package Pkg_09;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class Practice {

    public static void main(String[] args) {

        WebDriver driver1;

        driver1.get("www.google.com");
        driver1.findElement(By.id("gs_htif0")).sendKeys("Sachin Tendulkar");
        driver1.findElement(By.id("aa")).sendKeys("xx");
        driver1.findElement(By.name("btnK")).click();
    }
}

如果有什么我遗漏的,请告诉我。

【问题讨论】:

  • 您使用的是什么版本的 Java 和 Selenium?这看起来像是旧版本的 Java 不理解 String 可分配给 CharSequence 可变参数。从语义上讲,CharSequence... 很乐意接受没有、一个或多个 String 参数。
  • 我一直通过 sendKeys(String) 并且它工作正常。
  • 非常感谢您的回复。我正在使用 Java 8 和 Selenium 版本 2.39.0。

标签: java selenium selenium-webdriver webdriver


【解决方案1】:

此行为取决于您用于运行此代码的 Java 版本。从 1.6 版开始,可以将单个 String 实例作为 CharSequences 传递,这将作为 sendKeys() 方法的参数。但是,如果您使用旧版本或者在构建脚本中将其指定为源/目标版本,那么您应该传递一个 CharSequences 数组作为 sendKeys() 方法的参数。所以它可以这样做:

public static void main(String[] args) {
    WebDriver driver1;
    driver1.get("www.google.com");
    driver1.findElement(By.id("gs_htif0")).sendKeys(new String[] {"Sachin Tendulkar"});
    driver1.findElement(By.id("aa")).sendKeys(new String[] {"xx"});
    driver1.findElement(By.name("btnK")).click();
}

【讨论】:

  • 非常感谢您的回复。我正在使用 Java 8 和 Selenium 版本 2.39.0.& Firefox 版本 25。请告诉我我应该使用什么版本的 JAVA、Selenium 和 Firefox ?
  • 首先,尝试实现上面的一个例子,如果成功就不需要检查selenium版本
【解决方案2】:

试试下面的代码:

driver1.findElement(By.id("aa")).sendKeys(new String[]{"xx"});

【讨论】:

    【解决方案3】:

    我们正在使用带有 Java 8 的 Eclipse 氧气版本,它对我们来说运行良好。 eclipse Luna 和 indigo 遇到了同样的问题

    【讨论】:

      【解决方案4】:

      当您尝试将 JAVA 8 与较低版本的 selenium 一起使用时,会发生这种情况,将您的 jar 更改为 selenium 3.0.1 并且一切正常。

      【讨论】:

        【解决方案5】:

        如果还有人遇到这个问题(Sendkeys 错误),请在下面尝试。

        下载“cldc-1.1-java5.0.jar”并添加到Build path-->添加外部库。

        【讨论】:

        • 这是写解决方案。下载“cldc-1.1-java5.0.jar”并添加到构建路径-->添加外部库。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-25
        相关资源
        最近更新 更多