public IBrowserSession CreateRemote(RemoteBrowserSettings settings) { switch (settings.BrowserType) { case BrowserType.Firefox: return(CreateRemoteFirefoxAdapter(settings)); case BrowserType.Chrome: return(CreateRemoteChromeAdapter(settings)); default: throw new ArgumentException("Unknown browser type."); } }
static private IBrowserSession CreateRemoteFirefoxAdapter(RemoteBrowserSettings settings) { var profile = new FirefoxProfile(); profile.SetPreference("dom.max_chrome_script_run_time", settings.CommandTimeout); profile.SetPreference("dom.max_script_run_time", settings.CommandTimeout); DesiredCapabilities capabilities = DesiredCapabilities.Firefox(); capabilities.SetCapability(FirefoxDriver.ProfileCapabilityName, profile.ToBase64String()); RemoteWebDriver webDriver = CreateRemoteDriver(capabilities, settings); return(new DefaultBrowserSession(webDriver).Configure(settings)); }
static private RemoteWebDriver CreateRemoteDriver(ICapabilities capabilities, RemoteBrowserSettings settings) { return(new RemoteWebDriver(settings.RemoteAddress, capabilities, TimeSpan.FromSeconds(settings.CommandTimeout))); }
static private IBrowserSession CreateRemoteChromeAdapter(RemoteBrowserSettings settings) { RemoteWebDriver webDriver = CreateRemoteDriver(DesiredCapabilities.Chrome(), settings); return(new ChromeBrowserSession(webDriver).Configure(settings)); }