it-roy-ru.com

Метод sendKeys (CharSequence []) в типе WebElement не применим для аргументов (String)

Я пытаюсь отправить строку в метод sendkeys (), но он не принимает и выдает ошибку как

мои коды следующие: 

package healthcare;

import org.openqa.Selenium.By;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.chrome.ChromeDriver;
import org.openqa.Selenium.firefox.FirefoxDriver;
import org.openqa.Selenium.support.ui.Select;

import com.thoughtworks.Selenium.Selenium;
import com.thoughtworks.Selenium.webdriven.WebDriverBackedSelenium;

public class MailRegister_Webdriver {
    public WebDriver driver;
    public Selenium selenium;
    public void openURL(){
//System.setProperty("webdriver.chrome.driver", "F:\\Library\\chromedriver.exe");       
driver=new FirefoxDriver();
Selenium=new WebDriverBackedSelenium(driver, "http://mail.in.com");
driver.get("http://mail.in.com");
    }
    public void register() throws Exception{
//driver.findElement(By.cssSelector("input.registernow")).click();
Selenium.click("css=input.registernow");
Thread.sleep(3000);
driver.findElement(By.id("fname")).sendKeys("Nagesh");
Selenium.select("day", "10");
Selenium.select("month", "Jun");
new Select(driver.findElement(By.id("year"))).selectByVisibleText("1999");
Thread.sleep(1000);
driver.findElement(By.xpath("(//input[@name='radiousername'])[5]")).click();    
Thread.sleep(2000);
        driver.findElement(By.id("password")).sendKeys("nag123");
        driver.findElement(By.id("repassword")).sendKeys);
        driver.findElement(By.id("altemail")).sendKeys();
        driver.findElement(By.id("mobileno")).sendKeys("7894561230");
        driver.findElement(By.id("imageField")).click();
}

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        MailRegister_Webdriver m=new MailRegister_Webdriver();
        m.openURL();
        m.register();
    }
}

Может кто-нибудь помочь в этом, почему метод Sendkeys () не принимает значения String в качестве аргументов?

9
mickey

У этого есть простое решение. Измените уровень соответствия вашего компилятора с 1.4 на 1.7.

Выполните следующие шаги в своем Eclipse:

  1. Щелкните правой кнопкой мыши ваш проект Java и выберите Build Path -> Нажмите на
    Настроить путь сборки ...
  2. В окне свойств проекта нажмите/выберите Java Compiler слева
    Панель
  3. На правой панели измените уровень соответствия Compiler с 1.4 на 1.7
    (Выберите, какая версия выше в вашем Eclipse)
  4. Наконец нажмите на Применить иOK

Теперь проверьте свой код. это никогда не покажет ту же ошибку.

32
Venkatesh Pothula
element.sendKeys(new String[]{"Hello, Selenium"});

Мой код выглядит так, он работает.

3
summer

Есть два возможных решения для этого 

1- Измените версию компилятора со старой версии на 1.5 или выше.

2- Измените версию JRE с JRE8 на JRE7.

Я создал подробную статью по этому поводу, может быть, это поможет.

http://learn-automation.com/solution-for-sendkeyscharsequence-in-Selenium/

2
Mukesh otwani

Установите Системную библиотеку JRE снова. Если вы используете Eclipse, выполните следующие действия:

  1. Перейти к свойствам проекта
  2. Выберите Путь сборки Java на левой панели -> Выбрать Библиотеки вкладка справа
  3. Нажмите/выберите Системная библиотека JRE [] -> Нажмите Изменить Кнопка справа
  4. Установите предпочитаемый JRE и нажмите Готово кнопку
  5. Наконец нажмитеOKкнопку во всплывающем окне свойств проекта

Вместо редактирования вы также можете сделать, удалив и добавив. Шаги:

  1. Щелкните правой кнопкой мыши на проекте »Свойства» Java Build Path
  2. Выберите вкладку Библиотеки
  3. Найдите системную библиотеку JRE и удалите ее
  4. Нажмите кнопку Добавить библиотеку ... справа »Добавить системную библиотеку JRE .__ (JRE рабочей области по умолчанию)
0
Ripon Al Wasim

В зависимости от версии Java вам нужно либо преобразовать примитив (например, Char) в String (смотрите здесь: http://tech.deepumohan.com/2013/03/Java-how-to-convert-primitive-char -to.html )

Или переключитесь на версию Java, которая сделает это за вас (см. Здесь: http://Java-performance.info/changes-to-string-Java-1-7-0_06/ )

0
goggelj

Попробуйте нажать на WebElement перед отправкой ключей на него: 

public static void login(WebDriver driver, String userName, String password) {
    driver.get("loginPage.html");
    Thread.sleep(3000);
    driver.findElement(By.id("username")).click();
    driver.findElement(By.id("username")).clear();
    driver.findElement(By.id("username")).sendKeys(userName);
    Thread.sleep(TestConfiguration.time);
    driver.findElement(By.id("password")).click();
    driver.findElement(By.id("password")).clear();
    driver.findElement(By.id("password")).sendKeys(password);
    Thread.sleep(3000);
    driver.findElement(By.name("login")).click();
    Thread.sleep(3000);
}

Вы должны использовать метод clear (), чтобы очистить поле ввода перед использованием sendKeys ().

0
Gyorgy.Hegedus

Вы можете попробовать, заменив следующие строки кода:

        driver.findElement(By.id("password")).sendKeys("nag123");
        driver.findElement(By.id("repassword")).sendKeys);
        driver.findElement(By.id("altemail")).sendKeys();
        driver.findElement(By.id("mobileno")).sendKeys("7894561230");
        driver.findElement(By.id("imageField")).click();

в

        driver.findElement(By.id("password")).sendKeys("nag123");
        driver.findElement(By.id("repassword")).sendKeys("");
        driver.findElement(By.id("altemail")).sendKeys("");
        driver.findElement(By.id("mobileno")).sendKeys("7894561230");
        driver.findElement(By.id("imageField")).click();
0
Abhishek Yadav