Ошибка с selenium.WebElement.sendKeys () - PullRequest
3 голосов
/ 08 марта 2012

Я собираю небольшое приложение для выполнения автоматических проверок на сайте Magento, используя Selenium WebDriver на Java.Я работаю над изучением 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] Ошибка компиляции / seleniumMagento / src / main / java / com / huuginn / seleniumMagento/App.java:[25,13] sendKeys (java.lang.CharSequence ...) в org.openqa.selenium.WebElement нельзя применить к (java.lang.String)

sendKeysожидает параметр типа, который реализует CharSequence (java.lang.String квалифицируется как таковой), поэтому я не понимаю, почему я получаю эту ошибку.

Я использую Java 1.6 и Selenium 2.19, делаю мою сборку с Maven.

Ответы [ 3 ]

4 голосов
/ 08 марта 2012

У меня были похожие проблемы с вызовом sendKeys().Обычно проблема заключается в том, что подпись является переменной, то есть CharSequence... вместо CharSequence.

Конечно, это не должно быть проблемой с Java 6. Я думаю, что вашаmaven compile использует другую настройку компилятора.В любом случае вы можете изменить код на

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

, чтобы помочь диагностировать проблему.

1 голос
/ 22 февраля 2013

Когда вы создаете проект, убедитесь, что вы выбрали «Использовать среду выполнения JRE: JavaSE-1.6. Вы можете успешно выполнить тест без любой ошибки Sendkeys. 100% это будет работать.

1 голос
/ 09 марта 2012

Я нашел другой способ обойти это.Я не указывал версию Java для компиляции, поэтому Maven компилировал для более старой версии.Я добавил это в свой pom.xml:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
      <source>1.5</source>
      <target>1.5</target>
    </configuration>
  </plugin>

Это позволяет мне просто использовать буквенную строку «SAMPLE» в sendKeys (), и она отлично работает.

...