【发布时间】:2016-10-31 19:19:19
【问题描述】:
我正在使用 Java 进行 selenium 自动化 我有一个场景,只有当我为当前场景手动关闭 chrome 浏览器时,我才需要移动到黄瓜功能文件中的下一个场景。
请帮我实现这个
【问题讨论】:
-
您尝试了哪些方法,结果如何?请提供一些代码和您遇到的错误,以便我们提供帮助。
标签: java selenium selenium-webdriver junit cucumber
我正在使用 Java 进行 selenium 自动化 我有一个场景,只有当我为当前场景手动关闭 chrome 浏览器时,我才需要移动到黄瓜功能文件中的下一个场景。
请帮我实现这个
【问题讨论】:
标签: java selenium selenium-webdriver junit cucumber
你也可以这样做
WebDriver driver = new ChromeDriver();
waitForDriverToClose(driver);
waitForDriverToClose
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);
}
}
【讨论】:
您可以尝试循环,直到浏览器死机或无法访问异常..
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
Boolean check = false;
while (!check) {
try {
driver.getTitle();
Thread.sleep(200);
} catch (Exception e) {
//you can verify correct exception here ie not reachable, dead etc..
check = true;
}
}
System.out.println("after browser close");
//continue your code here
【讨论】:
如果您在运行 selenium 测试时手动关闭浏览器,您将获得: org.openqa.selenium.NoSuchWindowException:找不到窗口。浏览器窗口可能已关闭。
您可以尝试捕获此异常,然后从那里开始。
【讨论】: