我正在使用 Firefox 8.0.1 测试 Selenium 2.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;
上面的代码毫无问题地处理了第一个弹出窗口的触发和接受。我遇到的问题是在第一个弹出窗口上单击“确定”(我必须为我的测试做)触发第二个弹出窗口。到目前为止,我还没有成功处理第二个弹出窗口。我尝试了以下代码的变体,但没有成功:
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: Modal dialog present。以前我会手动单击第二个弹出窗口上的“确定”按钮,但在 2.29 中不再可能了。
目前我只有一个有这个特定问题的测试用例,但我想看看是否有其他人遇到过这个问题并找到了一种处理它的好方法。谢谢你。