java - selenium.WebElement.sendKeys() 出错

标签 java maven selenium

我正在组装一个小应用程序,使用 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();
    }
}

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

编译时出现这个错误:

[INFO] Compilation failure /seleniumMagento/src/main/java/com/huuginn/seleniumMagento/App.java:[25,13] sendKeys(java.lang.CharSequence...) in org.openqa.selenium.WebElement cannot be applied to (java.lang.String)

sendKeys 需要一个实现 CharSequence 类型的参数(java.lang.String 符合此条件),所以我不明白为什么会出现此错误。

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

最佳答案

我在调用 sendKeys() 时遇到过类似的问题。问题通常是,签名是一个 var-ary,即 CharSequence... 而不仅仅是 CharSequence

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

searchField.sendKeys(new String[] { "sample" });

帮助诊断问题。

关于java - selenium.WebElement.sendKeys() 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622454/

相关文章:

java - 如何将字符串 arraylist 转换为 double 以便 arraylist 可以返回排序值

Java方法返回不同类型数组的随机元素

java - 从java应用程序连接到谷歌数据存储

java - maven-compiler-plugin 在检查陈旧源时是否考虑依赖关系?

c# - 如何使用 Windows 添加到我的 c# Selenium Webdriver 套件以合并 native iPhone 应用程序测试

Python Selenium : Scrolling not working

java - 过滤可轮询 channel

java - 使用Java远程备份MySQL数据库

java - 在 Maven 属性中指定 JDK 16

java - M2Eclipse (M2E) 构建错误