Selenium показывает ошибку. Метод sendKeys (CharSequence []) в типе WebElement неприменим для аргументов (String)

При выполнении сценария селена с помощью JAVA я получаю ошибку ниже.

Ошибка: «Метод sendKeys (CharSequence []) в типе WebElement неприменим для аргументов (String)»

Мой код:

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();
    }
}

Пожалуйста, дайте мне знать, если я что-то упускаю.


person Swapnil Gandhile    schedule 18.09.2015    source источник
comment
Какую версию Java и Selenium вы используете? Похоже, что более старая версия Java не понимает, что String назначается CharSequence vararg. Семантически CharSequence... с радостью не принимает ни одного, ни одного или нескольких String параметров.   -  person Philipp Reichart    schedule 18.09.2015
comment
Я все время передаю sendKeys (String), и он отлично работает.   -  person JeffC    schedule 18.09.2015
comment
Большое спасибо за ответ. Я использую Java 8 и Selenium версии 2.39.0.   -  person Swapnil Gandhile    schedule 21.09.2015


Ответы (5)


Это поведение зависит от версии 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();
}
person Stanislav    schedule 18.09.2015
comment
Большое спасибо за ответ. Я использую Java 8 и Selenium версии 2.39.0 и Firefox версии 25. Скажите, пожалуйста, какую версию JAVA, Selenium и Firefox я должен использовать? - person Swapnil Gandhile; 21.09.2015
comment
Прежде всего, попробуйте реализовать приведенный выше пример, если он работает, не нужно проверять версию селена - person Stanislav; 21.09.2015

Попробуйте код ниже:

driver1.findElement(By.id("aa")).sendKeys(new String[]{"xx"});
person palki wadhwa    schedule 24.03.2017

Мы используем версию Eclipse Oxygen с Java 8, и она у нас работает нормально. У нас была такая же проблема с Eclipse Luna и индиго.

person Shubham Jain    schedule 30.01.2017

Это происходит, когда вы пытаетесь использовать JAVA 8 с более низкими версиями селена, меняете свои банки на селен 3.0.1, и все должно работать нормально.

person Kushal    schedule 31.01.2017

Если кто-то все еще сталкивается с этой проблемой (ошибка Sendkeys), попробуйте ниже.

загрузите «cldc-1.1-java5.0.jar» и добавьте его в Путь сборки -> добавить внешние библиотеки.

person user7977023    schedule 07.05.2017
comment
это решение для записи. загрузите cldc-1.1-java5.0.jar и добавьте его в путь сборки - ›добавить внешние библиотеки. - person user7977023; 07.05.2017