Selenium - 脚本应该等到浏览器手动关闭

时间:2016-06-29 07:55:05

标签: java selenium selenium-webdriver junit cucumber

我正在使用Java进行硒自动化 我有一个场景,只有当我为当前场景手动关闭Chrome浏览器时,我才需要转到黄瓜功能文件中的下一个场景。

请帮我实现这个

3 个答案:

答案 0 :(得分:4)

您也可以这样做

private static void waitForDriverToClose(WebDriver driver) {
        try {
            WebDriverWait wait = new WebDriverWait(driver, 20);
            wait.until(ExpectedConditions.not(new ExpectedCondition<Boolean>() {
                @Override
                public Boolean apply(WebDriver driver) {
                    try {
                        driver.getTitle();
                        return true;
                    } catch (Exception ex) {
                        System.out.println("Couldn't Connect Driver / Driver Closed");
                        return false;
                    }
                }
            }));
        } catch (org.openqa.selenium.TimeoutException ex) {
            System.out.println("Timeout Trying Again");
            waitForDriverToClose(driver);
        }
    }

<强> waitForDriverToClose

{{1}}

答案 1 :(得分:2)

您可以尝试循环,直到浏览器死亡或无法访问异常..

    session_start();

    require_once("./include/membersite_config.php");

    if(isset($_POST['submitted']))
    {
        if($fgmembersite->Login())
        {
            $redirect_url = (isset($_SESSION['redirect_url'])) ? $_SESSION['redirect_url'] : '/';
            unset($_SESSION['redirect_url']);
            header("Location: $redirect_url", true, 303);
            exit;
        }
    }

答案 2 :(得分:0)

如果在运行selenium测试时手动关闭浏览器,您将获得: org.openqa.selenium.NoSuchWindowException:找不到窗口。浏览器窗口可能已关闭。

您可以尝试捕获此异常,然后从那里开始。