J'essaie d'envoyer une entrée utilisateur à l'aide de la classe scanner dans une zone de texte à l'aide de javaScriptExecutor mais sans obtenir la valeur capturée par la classe scanner.

    Scanner first_captcha = new Scanner(System.in);
            System.out.println("Please enter the captcha");
            int Captcha = first_captcha.nextInt();

            @SuppressWarnings("unused")
            WebElement captcha = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("captcha")));
            JavascriptExecutor jse = (JavascriptExecutor) driver;
            jse.executeScript("document.getElementById('captcha').value = Captcha");


   /* Value is going to the textbox is "Captcha" but I just wanted to send the value which user provided in the scanner class. */
0
suraj sharma 28 nov. 2017 à 07:26

3 réponses

Meilleure réponse
jse.executeScript("document.getElementById('captcha').value = Captcha");

Ici Captcha est une chaîne codée en dur que vous avez définie. vous devez passer Captch comme variable que vous obtenez en utilisant la classe Scanner.

Utilisez le code ci-dessous:

JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("document.getElementById('captcha').value = "+Captcha+"");
0
NarendraR 28 nov. 2017 à 05:52

Votre chaîne d'exécution n'a pas d'espace réservé pour la valeur entière. Vous devez donc refactoriser l'appel jse.executeScript selon cette syntaxe.

jse.executeScript("document.getElementById('captcha').value = "+Captcha+";");
0
Manmohan_singh 28 nov. 2017 à 08:11

Cela devrait fonctionner:

jse.executeScript(String.format("document.getElementById('captcha').value = %d", Captcha));
0
Amit Verma 28 nov. 2017 à 04:29
47524017