Escすべてのブラウザーと OS でページの読み込みをキャンセルするという仮定に基づいて、これは機能するはずです。
WebElement input = driver.findElement(By.tagName("input"));
input.sendKeys(Keys.ENTER, Keys.ESCAPE);
Assert.assertFalse(input.isEnabled());
Enterボタンにとを立て続けに送信Escするため、JavaScript が起動されますが、ページの読み込みが開始される可能性はありません。唯一の問題は、これで次のページに移動できないことです。新しいフォームを更新して送信しない限り、テストしてください。しかし、とにかく一度に 1 つの機能だけをテストする必要があるので、問題ありません ;-)。
編集(コメントに対処するため)
実はそうです!Advanced User Interactions API ( JavaDocs ) を使用して、クリックとEscキーを同時に送信することを試みることができます。この方法でノンブロッキング クリックを実現することもできます。
とにかく、このアプローチはまだ2つのリクエストを送信しますが、これは想像できる最速の方法ではありませんが、私のテストに(かろうじて)合格することもあるので、試してみてください。
WebElement input = driver.findElement(By.tagName("input"));
new Actions(driver)
.click(input)
.sendKeys(input, Keys.ESCAPE)
.perform();
テスト環境: ローカルに保存されたファイルと Selenium 2.29.1 を使用する IE8 および FF18。XP SP3 を獲得します。テスト ファイルは次のようになります。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
<a href="http://google.com/">
<input type="button" value="Hello." onclick="this.disabled='true';" />
</a>
</body>
</html>