web-dev-qa-db-fra.com

La méthode sendKeys (CharSequence []) dans le type WebElement n'est pas applicable pour les arguments (String)

J'essaie d'envoyer une chaîne à la méthode sendkeys (), mais elle n'accepte pas et ne génère pas d'erreur en tant que

mes codes suivent: 

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

Quelqu'un peut-il aider à ce sujet, pourquoi la méthode Sendkeys () ne prend pas les valeurs String comme arguments?

9
mickey

Il a une solution simple. Changez le niveau de conformité de votre compilateur de 1,4 à 1,7.

Suivez ces étapes dans votre Eclipse:

  1. Faites un clic droit sur votre projet Java et sélectionnez Chemin de construction -> Cliquez sur
    Configurer le chemin de construction ...
  2. Dans la fenêtre des propriétés du projet, cliquez sur/sélectionner Compilateur Java à gauche
    panneau
  3. Sur le panneau de droite, changez le niveau de conformité du compilateur de 1,4 à 1,7.
    (Sélectionnez la version la plus récente de votre Eclipse)
  4. Enfin, cliquez sur Appliquer etOK

Maintenant, vérifiez votre code. il ne montrera jamais la même erreur.

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

Mon code ressemble à ceci, ça marche.

3
summer

Il y a deux solutions possibles pour cela 

1- Changer la version du compilateur de l'ancienne version à 1.5 ou plus.

2- Changez la version de JRE de JRE8 en JRE7.

J'ai créé un article détaillé sur cela peut être que cela aidera.

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

2
Mukesh otwani

Définissez à nouveau la bibliothèque système JRE. Si vous utilisez Eclipse, suivez les étapes ci-dessous:

  1. Accéder aux propriétés du projet
  2. Sélectionnez Chemin de construction Java dans le panneau de gauche -> Sélectionnez Bibliothèques onglet à droite
  3. Cliquez/sélectionnez JRE System Library [] -> Cliquez Éditer bouton à droite
  4. Définissez votre JRE préféré et cliquez sur le bouton Terminer
  5. Enfin, cliquez sur le boutonOKdans la fenêtre contextuelle des propriétés du projet.

Au lieu de modifier, vous pouvez également supprimer et ajouter des éléments. Les étapes sont les suivantes:

  1. Faites un clic droit sur le projet »Propriétés» Chemin de construction Java
  2. Sélectionnez l'onglet Bibliothèques
  3. Recherchez la bibliothèque système JRE et supprimez-la.
  4. Cliquez sur le bouton Ajouter une bibliothèque ... à droite »Ajouter la bibliothèque système JRE (JRE par défaut de Workspace)
0
Ripon Al Wasim

Selon la version de Java, vous devez convertir la primitive (c.-à-d. Char) en String (regardez ici: http://tech.deepumohan.com/2013/03/Java-how-to-convert-primitive-char -to.html )

Ou passez à une version Java qui le ferait pour vous (voir ici: http://Java-performance.info/changes-to-string-Java-1-7-0_06/ )

0
goggelj

Essayez de cliquer sur le WebElement avant de lui envoyer des clés: 

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

Vous devez utiliser la méthode clear () pour effacer le champ de saisie avant d'utiliser sendKeys ().

0
Gyorgy.Hegedus

Vous pouvez essayer en remplaçant vos lignes de code suivantes:

        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