I need to check a collection of Page Objects to see, for each one, if quit() has been called on its WebDriver.
I've written the following method to check a WebDriver's state:
public static boolean hasQuit(WebDriver driver) { try { driver.getTitle(); return false; } catch (SessionNotFoundException e) { return true; } }
Here's the problem: I don't like having to throw and catch an exception to discover the truth of a boolean, but it seems I have no choice since the WebDriver API doesn't provide a method to check if the driver has quit.
So my question is, is there a better way to check if a WebDriver has quit?
I found a similar (and more general) question here, but the question did not have any code that had been tried, and the only answer was to always set the WebDriver to null after quiting (which I don't necessarily have control over).
Or You can also check with http://localhost:4444/selenium-server/driver/?cmd=getLogMessages If serveris runnning then it will show 'ok' in browser.
quit() method closes all browser windows and ends the WebDriver session.
If quit()
has been called, driver.toString()
returns null:
>>> FirefoxDriver: firefox on XP (null))
Otherwise, it returns a hashcode of the object:
>>> FirefoxDriver: firefox on XP (9f897f52-3a13-40d4-800b-7dec26a0c84d)
so you could check for null when assigning a boolean:
boolean hasQuit = driver.toString().contains("(null)");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With