簡體   English   中英

如何使用Java在Selenium WebDriver中按“TAB”然后按“ENTER”鍵?

[英]How to press “TAB” then “ENTER” key in Selenium WebDriver using Java?

我正在使用帶有Selenium WebDriver的java進行自動化測試。 我想點擊標簽。 我想檢查標簽功能。

我可以使用Tab鍵獲取如下按鈕:

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

我有一個包含多個字段的表單,我想跟蹤按鍵標簽鍵是我的控件成功移動到下一個字段。 另外,我想檢查下面的控件是我的表格 圖片

但是如何逐個單擊選項卡。 基本上我需要按Tab鍵,然后按Enter鍵單擊按鈕。

我學習硒。 請幫我。 提前致謝。

請參閱適用於我的示例表單的解決方案

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

試試下面的代碼。這很好用。

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

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

當您在頁面上時,您可以嘗試使用java的機器人類來模擬按下選項卡並輸入任何其他按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM