2014-05-19 62 views
1

我使用WebDriver進行測試,並且彈出對話框,沒有固定的屬性(自動生成)。如何按「Enter」而不瞄準WebElement

所以,最簡單的方法(我認爲)是按下鍵盤上的Enter鍵。 但我無法找到說'只需點擊瀏覽器,而不是瀏覽器的元素'的方式。

WebDriver有可能嗎?我怎樣才能實現它?

回答

2

另一種方法是使用java.awt.Robot中的模擬鍵盤的交互和不是WebElement的處理。

[WebDriver code]

try { 
    Robot robot = new Robot(); 
    robot.keyPress(KeyEvent.VK_ENTER); 
    robot.keyRelease(KeyEvent.VK_ENTER); 
    robot.delay(200); 
} 

[WebDriver code]

0

使用操作工具就可以達到相同的:

Actions builder = new Actions(driver); 
builder.keyDown(Keys.RETURN).keyUp(Keys.RETURN).build().perform(); 
+0

該邏輯看起來不錯,但我不能執行它沒有崩潰。並彈出不會消失.. 謝謝你! – pikameuh

-1

你可以做這樣的事情

driver.findElement(By.tagName("body")).sendKeys(Keys.ENTER); 
+0

非常感謝你!它真的幫助我!這個命令後面的應用程序崩潰的缺點。所以我通過'try {} catch(){}'進行構造以防止崩潰。 – pikameuh

1
Robot robot = new Robot(); 
    robot.keyPress(KeyEvent.VK_ENTER); //press enter key 
    robot.keyRelease(KeyEvent.VK_ENTER); //release enter key 

你也應該指定發佈命令,而輸入鍵被按下。