public RemoteWebDriver startDriver(Callable<RemoteWebDriver> task) { RemoteWebDriver driver = invokeDriverCreationTask(task); int driverCreationAttempts = CustomProperties.getDriverCreationAttempts(); int counter = 0; while (driver == null && counter != driverCreationAttempts) { driver = invokeDriverCreationTask(task); counter++; if (counter == driverCreationAttempts && driver == null) throw new WebDriverException( "Failed to create new instance of WebDriver after " + driverCreationAttempts + " attempts!"); } return driver; }