it-roy-ru.com

Как нажать "TAB", а затем "ENTER" в Selenium WebDriver, используя Java?

Я делаю тестирование автоматизации с использованием Java с Selenium WebDriver. Я хочу нажимать на вкладки. Я хотел бы проверить функциональность вкладки.

Я могу использовать клавишу Tab, чтобы получить кнопку, как показано ниже:

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

У меня есть форма с несколькими полями, которую я хочу отслеживать при нажатии клавиши. Клавиша «Мой элемент управления» успешно перемещается в следующее поле или нет. Также я хочу проверить, какой мой контроль находится ниже, это моя форма image

Но как я могу щелкнуть по одной вкладке . В основном мне нужно добиться, нажмите клавишу Tab, а затем нажмите клавишу Enter, чтобы нажать кнопку.

Я изучаю Selenium . Пожалуйста, помогите мне. Заранее спасибо.

5
Deepak gupta

Попробуйте приведенный ниже код. Это работает нормально.

        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

Пожалуйста, посмотрите решение, которое работает с моей формой примера 

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>

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

Вы можете попытаться использовать класс Java-робота для имитации нажатия кнопок и ввода любых других кнопок, сколько вы хотите, когда вы находитесь на странице.

0
E.E