サイトをテストするためにwebdriverを使用しています。ajax 経由でデータをロードするために、多くのリンクでイベント委任が使用されています。
jQuery("body").delegate("a",
"click",
function adjustHref(event) {
// callback
});
テストでは、webdriver のリンクをクリックしています。
WebElement anchor = headlines.get(0).findElement(By.tagName("a"));
anchor.click();
WebElement articleHeader = wait.until(new VisibilityOfElementLocated(By.tagName("h1")));
これで Chrome と IE では期待どおりに動作しますが、Firefox では失敗することがあります。他のブラウザでanchor.click()
は新しいページに移動しますが、Firefox では動作する場合と失敗する場合があります。例外はスローされないため、要素アンカーが見つかりましたが、webdriver がそれをクリックしても何も起こりません。これは webdriver のみの問題であり、サイトを手動で使用すると問題なく動作します。webdriver には、Firefox でのイベント委任に関する制限がありますか?