我使用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启动并且:
Chrome设置窗口打开,并要求我恢复默认设置。 (显示窗口)
我的目标网址打开了。 (隐藏)
当我运行测试时,测试通过但Chrome设置窗口未关闭。我尝试打印当前的URL,然后返回生产服务器URL,这是我想要的URL,但显示的浏览器窗口不是我的生产URL。
答案 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);
}