public IWebDriver GetDriver(string driverName) { if (!Drivers.ContainsKey(driverName)) { throw new Exception($"Can't find driver with name {driverName}"); } try { if (RunDrivers.ContainsKey(driverName)) { return(RunDrivers[driverName]); } var resultDriver = Drivers[driverName].Invoke(); RunDrivers.Add(driverName, resultDriver); if (resultDriver == null) { throw new Exception($"Can't get Webdriver {driverName}. This Driver name not registered"); } return(resultDriver); } catch { throw new Exception("Can't get driver."); } }
public IWebDriver GetDriver(string driverName) { if (!Drivers.ContainsKey(driverName)) { throw new Exception($"Can't find driver with name {driverName}"); } try { IWebDriver result; lock (_locker) { if (RunDrivers.Value == null || !RunDrivers.Value.ContainsKey(driverName)) { var rDrivers = RunDrivers.Value ?? new Dictionary <string, IWebDriver>(); var resultDriver = Drivers[driverName](); if (resultDriver == null) { throw new Exception($"Can't get Webdriver {driverName}. This Driver name is not registered"); } rDrivers.Add(driverName, resultDriver); RunDrivers.Value = rDrivers; } result = RunDrivers.Value[driverName]; } return(result); } catch (Exception e) { throw new Exception($"Can't get driver: {e.Message}; StackTrace: {e.StackTrace}"); } }
public void SwitchToDriver(string driverName) { if (Drivers.ContainsKey(driverName)) { CurrentDriverName = driverName; } else { throw new Exception($"Can't switch to Webdriver {driverName}. This Driver name not registered"); } }
public void ReopenDriver(string driverName) { if (RunDrivers.ContainsKey(driverName)) { RunDrivers[driverName].Close(); RunDrivers.Remove(driverName); } if (Drivers.ContainsKey(driverName)) { GetDriver(); // TODO } }
public void ReopenDriver(string driverName) { var rDriver = RunDrivers.Value; if (rDriver.ContainsKey(driverName)) { rDriver[driverName].Close(); rDriver.Remove(driverName); RunDrivers.Value = rDriver; } if (Drivers.ContainsKey(driverName)) { GetDriver(); // TODO } }
private string GetDriverName(string driverName) { if (!Drivers.ContainsKey(driverName)) { return(driverName); } string newName; var i = 1; do { newName = driverName + i++; } while (Drivers.ContainsKey(newName)); return(newName); }
public string RegisterDriver(string driverName, Func <IWebDriver> driver) { if (Drivers.ContainsKey(driverName)) { throw Exception($"Can't register WebDriver {driverName}. Driver with the same name already registered"); } try { Drivers.Add(driverName, driver); CurrentDriverName = driverName; } catch (Exception e) { throw Exception($"Can't register WebDriver {driverName}. StackTrace: {e.StackTrace}"); } return(driverName); }
protected TDriver createDevice(string devName) { TDriver result = null; lock (driverSync) { if (Drivers.ContainsKey(devName)) { result = Drivers[devName]; } else { result = DriverLoader.GetImplementation <TDriver>(devName); if (result == null) { throw new DriverException($"Unable to create a driver instance for {devName} (DeviceType={DriverType})"); } Drivers.Add(devName, result); } } return(result); }
public string RegisterDriver(string driverName, Func <IWebDriver> driver) { try { string newName = driverName; if (Drivers.ContainsKey(driverName)) { var i = 1; while (Drivers.ContainsKey(newName = driverName + i++)) { ; } } Drivers.Add(newName, driver); CurrentDriverName = newName; } catch { throw new Exception($"Can't register WebDriver {driverName}. Driver with the same name already registered"); } return(driverName); }