driver.close()终止测试

时间:2018-02-21 15:25:34

标签: java selenium-webdriver junit webdriver selenium-chromedriver

我使用selenium WebDriver。我正在尝试运行以下方案。

我启动了一个网址,我想添加一个条件,如果有任何网址打开而不是我想要的网址,我想关闭它。

以下是我的代码,我将解释下面发生的事情。

if (config.getProperty("browser").equals("Chrome"))
    {
        System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("disable-infobars");
        options.addArguments("--start-maximized");
        driver = new ChromeDriver(options);
        selectServer();
        String currentURL = driver.getCurrentUrl();
        if (currentURL != config.getProperty("production") || currentURL != config.getProperty("staging") || currentURL != config.getProperty("development"))
            {
                Thread.Sleep(10000); //for Debugging purpose
                driver.close();
            }
        }

我有一个config.properties文件,我在其中设置浏览器/服务器选择。

现在发生的事情是,当我启动测试时,chrome启动并且:

  1. Chrome设置窗口打开,并要求我恢复默认设置。 (显示窗口)

  2. 我的目标网址打开了。 (隐藏)

  3. 当我运行测试时,测试通过但Chrome设置窗口未关闭。我尝试打印当前的URL,然后返回生产服务器URL,这是我想要的URL,但显示的浏览器窗口不是我的生产URL。

1 个答案:

答案 0 :(得分:0)

根据您在评论中的回复,我认为您需要切换到设置标签,关闭该标签,然后切换回原始标签。以下代码应该这样做:

public static void closeBrowserTab() {
    String originalHandle = driver.getWindowHandle();
    for (String handle : driver.getWindowHandles()) {
        if (!handle.equals(originalHandle)) {
            driver.switchTo().window(handle);
            driver.close();
            break;
        }
    }
    driver.switchTo().window(originalHandle);
}