selenium.WebElement.sendKeys() 错误

Eri*_*ell 3 java selenium maven

我正在使用 Java 中的 Selenium WebDriver 在 Magento 站点上组合一个小应用程序来执行自动结账。我正在学习 Java,所以我坚持要使用 Java 解决这个问题,而不是切换到 Ruby 或 Python。

package com.huuginn.seleniumMagento;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

/**
 * selenium app for completing checkout in magento
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        //      MagentoCatalog c = new MagentoCatalog();
        WebDriver driver = new FirefoxDriver();

        driver.get("http://plmkt.huuginn.com/");

        WebElement searchField = driver.findElement(By.id("search"));

        System.out.println(searchField.getClass().getName());
        searchField.clear();
        searchField.sendKeys("sample");
        searchField.submit();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的 getName() 行确认我正在从页面中获取我想要的元素。

编译时出现此错误:

[INFO] org.openqa.selenium.WebElement 中的编译失败 /seleniumMagento/src/main/java/com/huuginn/seleniumMagento/App.java:[25,13] sendKeys(java.lang.CharSequence...) 不能应用于 (java.lang.String)

sendKeys 需要一个实现 CharSequence 的类型的参数(java.lang.String 如此限定),所以我不明白为什么我会收到这个错误。

我正在使用 Java 1.6 和 Selenium 2.19,使用 Maven 进行构建。

Joe*_*e23 5

我在调用sendKeys(). 问题通常是,签名是一个 var-ary,CharSequence...而不仅仅是CharSequence.

当然,这应该不是 Java 6 的问题。我的猜测是您的 maven 编译使用了不同的编译器设置。无论如何,您可以将代码更改为

searchField.sendKeys(new String[] { "sample" });
Run Code Online (Sandbox Code Playgroud)

以帮助诊断问题。