There are also overloaded setDriver methods we spoke about in the first chapter, which allow switching between multiple drivers running simultaneously. For the browser drivers, when switching drivers, you must cast WebDriver to RemoteWebDriver:
public void setDriver(WebDriver driver) {
webDriver.set(driver);
sessionId.set(((RemoteWebDriver) webDriver.get())
.getSessionId().toString());
sessionBrowser.set(((RemoteWebDriver) webDriver.get())
.getCapabilities().getBrowserName());
sessionPlatform.set(((RemoteWebDriver) webDriver.get())
.getCapabilities().getPlatform().toString());
setBrowserHandle(getDriver().getWindowHandle());
}