2015-04-21 3 views
4

Я делаю тесты автоматизации с помощью java с Selenium WebDriver. Я хочу щелкнуть по вкладкам. Я хотел бы проверить функциональность вкладок.Как нажимать «TAB», затем «ENTER» в Selenium WebDriver с помощью Java?

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

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

У меня есть форма с несколькими полями я хочу, чтобы отслеживать при нажатии клавиши табуляции ключ мой контроль перехода к следующему полю успешно или нет. также я хочу проверить, на что мой контроль ниже, является моей формой image

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

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

+1

Сначала вы должны щелкнуть внутри коробки, а затем отправить TAB, затем ESCAPE (помните, что «ENTER» не «войти» на клавиатуре, право один «ESCAPE»). – stanjer

+0

Не могли бы вы предоставить ссылку на эту форму или html? – Eugene

ответ

2

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

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(); 
-1
Actions builder = new Actions(driver); 
     Action enter= builder 
       .keyDown(Keys.TAB) 
       .build(); 
enter.perform(); 

Action releaseEnter= builder 
       .keyUp(Keys.ENTER) 
       .build(); 
releaseEnter.perform(); 
+0

Ваш код, кажется, нажимает только Enter, но нет кода для нажатия Tab –

0

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

1

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

Actions builder = new Actions(getDriver()); 
builder.sendKeys(Keys.TAB).build().perform(); 
builder.release().perform(); 
builder.sendKeys(Keys.ENTER).build().perform(); 
builder.release().perform(); 
Смежные вопросы