私はFirefox8.0.1でSelenium2.29をテストしています(以前はモーダルダイアログの問題のため2.17で、最大バージョンとしてFF 11のままでした)。クリックするとJavaScriptコードをトリガーするアイコンがあります。このJSコードは、これを使用して処理できるポップアップをトリガーします。
driver.findElement(By.xpath(""xpath_to_icon")).click;
log("Alert text = " + getAlertText()); //log just outputs to the console
acceptAlert;
上記のコードは、最初のポップアップのトリガーと受け入れを問題なく処理します。私が抱えている問題は、最初のポップアップで[OK]をクリックすると(テストのために実行する必要があります)、2番目のポップアップがトリガーされることです。これまでのところ、この2番目のポップアップの処理には成功していません。私は運が悪かった次のコードのバリエーションを試しました:
acceptAlert;
driver.switchTo().alert().accept();
selenium.keyDownNative("32");
selenium.keyUpNative("32");
Thread t = new Thread(new Runnable() {
public void run() {
// driver.findElement("").click();
log("Alert2 text = " + getAlertText());
acceptAlert();
}
});
t.start();
このエラーがスローされるたびに:org.openqa.selenium.UnhandledAlertException:モーダルダイアログが表示されます。以前は、2番目のポップアップで[OK]ボタンを手動でクリックしていましたが、2.29ではそれができなくなりました。
現在、この特定の問題を抱えているテストケースは1つしかありませんが、他の誰かがこれに遭遇し、それを処理するための良い方法を見つけたかどうかを確認したいと思います。ありがとうございました。