web-dev-qa-db-fra.com

Comment appuyer sur "TAB" puis sur "ENTER" dans Selenium WebDriver en utilisant Java?

Je fais des tests d'automatisation avec Java avec Selenium WebDriver. Je veux cliquer sur les onglets. Je voudrais vérifier la fonctionnalité de l'onglet.

Je peux utiliser la touche de tabulation pour obtenir le bouton ci-dessous:

WebElement webElement = driver.findElementByXPath("");
webElement.sendKeys(Keys.TAB);
webElement.sendKeys(Keys.ENTER);

J'ai un formulaire avec plusieurs champs que je veux suivre en appuyant sur la touche. La touche de tabulation est ma commande pour passer au champ suivant avec succès ou non. Aussi je veux vérifier sur lequel mon contrôle est ci-dessous est ma forme image

Mais comment puis-je cliquer sur un onglet . En gros, il faut appuyer sur la touche Tab puis sur la touche Entrée pour cliquer sur le bouton.

J'apprends le sélénium… .. S'il vous plaît, aidez-moi. Merci d'avance.

5
Deepak gupta

Essayez le code ci-dessous. Cela fonctionne très bien.

        Actions builder = new Actions(driver);         
        builder.SendKeys(OpenQA.Selenium.Keys.Tab).Build().Perform();
        builder.Release().Perform();            
        builder.SendKeys(OpenQA.Selenium.Keys.Tab).Build().Perform();
        builder.Release().Perform();
2
SaiPawan

S'il vous plaît voir la solution qui fonctionne avec mon exemple de formulaire 

FormTab.html:

<!DOCTYPE html>
<html>
<body>
<form>
    First name:<br>
    <input type="text" name="firstname" value="Mickey">
    <br>
    Last name:<br>
    <input type="text" name="lastname" value="Mouse">
    <br><br>
    <input type="submit" name="submit" value="Submit">
</form>
<p>If you click "Submit", nothing happens.</p>
</body>
</html>

Code Java:

WebDriver driver = new FirefoxDriver();

//Insert path to your file
driver.get("FormTab.html");

//Three example elements
WebElement firstField = driver.findElement(By.name("firstname"));
WebElement secondField = driver.findElement(By.name("lastname"));
WebElement submit = driver.findElement(By.name("submit"));

//Start with the first field
firstField.sendKeys();
//Verify that we in the first field
if(driver.switchTo().activeElement().equals(firstField))
    System.out.println("First element is in a focus");
else
    //Add Assertion here - stop execution
    System.out.println("ASSERTION - first element not in the focus");

firstField.sendKeys(Keys.TAB);

//Verify that we in the second field
if(driver.switchTo().activeElement().equals(secondField))
    System.out.println("Second element is in a focus");
else
    //Add Assertion here - stop execution
    System.out.println("ASSERTION - second element not in the focus");

secondField.sendKeys(Keys.TAB);

if(driver.switchTo().activeElement().equals(submit))
    System.out.println("Submit element is in a focus");
else
    //Add Assertion here - stop execution
    System.out.println("ASSERTION - submit element not in the focus");

//Click the button 
submit.click();

//Need be closed also in case the assertion - use @After
driver.close();
2
Eugene

Vous pouvez essayer d'utiliser la classe de robot de Java pour simuler des tabulations en appuyant sur et entrer d'autres boutons autant que vous le souhaitez lorsque vous êtes sur la page.

0
E.E