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