【发布时间】:2013-09-08 06:32:05
【问题描述】:
我需要检查页面对象的集合,以查看每个页面对象是否已在其 WebDriver 上调用了 quit()。
我编写了以下方法来检查 WebDriver 的状态:
public static boolean hasQuit(WebDriver driver) {
try {
driver.getTitle();
return false;
} catch (SessionNotFoundException e) {
return true;
}
}
问题是:我不喜欢通过抛出和捕获异常来发现布尔值的真相,但似乎我别无选择,因为 WebDriver API 没有提供检查驱动程序是否退出的方法。
所以我的问题是,有没有更好的方法来检查 WebDriver 是否已退出?
我发现了一个类似(并且更一般)的问题 here,但该问题没有任何代码已尝试过,唯一的答案是始终将 WebDriver 设置为空退出(我不一定能控制)。
【问题讨论】:
-
您可以尝试查看firefox/chrome/IE进程是否正在运行。然后您可以决定浏览器是打开还是关闭。非常果断的决定。
-
@ran 在某些情况下,在退出后将驱动程序设置为 null 可能会起作用,但在很多情况下,您仍然可以拥有对驱动程序对象的其他引用,因此驱动程序不会被垃圾收集。所以大多数时候在退出后设置 null 并不是一个万无一失的解决方案。
标签: java selenium webdriver selenium-webdriver