如何处理页面关闭时“您确定要离开此页面吗?”

时间:2011-08-26 06:47:35

标签: java javascript selenium

我有一个Web应用程序,它生成一条JS消息 “你确定要离开这个页面吗?”当您尝试打开新页面时。 我知道我可以通过

处理这条消息
Selenium.getAlert();

(或者对它进行了一些修改,我还没有尝试过)

但我的主要问题是,只有当我离开此页面时才会生成此消息。 在selenium我可以使用

离开页面
Selenium.open("new address");

Selenium.back();

所以我使用这样的代码

Selenium.open("new address");
Selenium.getAlert();

但问题是Selenium.open没有完成并转到程序中的下一个代码行,直到新页面完全加载,但是在程序进入下一个代码行并处理此警报之前无法加载页面。所以它已经陷入困境,我不知道如何处理它。

3 个答案:

答案 0 :(得分:1)

我不认为可以完成,完全保留在Selenium RC API中。我有类似的情况,通过在open()之前启动AutoIt脚本来处理,等待提示并回答它。这仅适用于Windows,但如果您需要其他系统的东西,我相信有相同的工具。

Selenium一直存在警报和确认问题(这是 - 确认有一个确定/取消选择)在页面加载时发生。在其中一条错误消息中甚至还有一个古老的错误号,它解释了它无法捕获它们。

答案 1 :(得分:0)

使用:

openAndWait(..)

也许其他SO question会帮助你。

答案 2 :(得分:0)

我不知道这是否有效,但这是一个想法。你可以尝试类似的东西:

try {
    driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
    Selenium.open("new address");
} catch (Exception e) {
    // Should throw after 1 second
}

// Now we may be able to interact with the alert.
Selenium.getAlert();