小编典典

在Java中,检查Selenium WebDriver是否已退出的最佳方法

selenium

我需要检查一组页面对象,以查看每个对象是否在其WebDriver上调用了quit()。

我编写了以下方法来检查WebDriver的状态:

public static boolean hasQuit(WebDriver driver) {
        try {
            driver.getTitle();
            return false;
        } catch (SessionNotFoundException e) {
            return true;
        }
}

问题就在这里:我不喜欢抛出异常来发现布尔值的真相,但是由于 WebDriver
API

没有提供检查驱动程序是否退出的方法,因此我似乎别无选择。

所以我的问题是, 是否有更好的方法来检查WebDriver是否已退出?

我在这里找到了一个类似的问题(但更普遍),但是问题没有尝试过任何代码,唯一的答案是退出后始终将WebDriver设置为null(我不一定可以控制) 。


阅读 546

收藏
2020-06-26

共1个答案

小编典典

如果quit()已调用,则driver.toString()返回null:

>>> FirefoxDriver: firefox on XP (null))

否则,它将返回对象的哈希码:

>>> FirefoxDriver: firefox on XP (9f897f52-3a13-40d4-800b-7dec26a0c84d)

因此您可以在分配布尔值时检查null:

boolean hasQuit = driver.toString().contains("(null)");
2020-06-26