protected boolean driverCanTakeSnapshots() {
if (driver == null) {
return false;
} else if (driverIsProvided()) {
ProvidedDriverConfiguration sourceConfig = new ProvidedDriverConfiguration(environmentVariables);
return sourceConfig.getDriverSource().takesScreenshots();
} else if (driver instanceof WebDriverFacade) {
return ((WebDriverFacade) driver).canTakeScreenshots()
&& (((WebDriverFacade) driver).getProxiedDriver() != null);
} else {
return TakesScreenshot.class.isAssignableFrom(driver.getClass());