/// <summary> /// Performs the playback of actions in this module. /// </summary> /// <remarks>You should not call this method directly, instead pass the module /// instance to the <see cref="TestModuleRunner.Run(ITestModule)"/> method /// that will in turn invoke this method.</remarks> void ITestModule.Run() { if (conf.Length > 0) { // Create endpoint management factory var fac = new RemoteEndpointFactory(); var ep = fac.CreateTransientWebDriverEndpoint(new WebDriverEndpointInfo("tempEp", epUrl)); var values = conf.Split(','); string epConf = String.Format(@"{{""browserName"": ""{0}"", ""Version"": ""{1}"", ""video"":true}}", values[0].Trim(), values[2].Trim()); Report.Info(epConf); var cfg = WebDriverConfiguration.FromJson(epConf); cfg.Name = String.Format("tmpConf_{0}_{1}_{2}", values[0].Trim(), values[1].Trim(), values[2].Trim()); cfg.Description = ""; ep.ActivateConfiguration(cfg); ep.ConnectAsync() .ContinueWith(_ => ep.MakeCurrentHostAsync()) .Wait(); } else { Report.Info("Not creating endpoint -- no config provided!"); } }
public void BuilderJsonConfigStringProducesCorrectSerialisation( Browser browser, WindowSize windowSize, bool headless, bool isLocal, string gridUri, PlatformType platformType) { // Arrange var webDriverConfigurationBuilder = WebDriverConfigurationBuilder.Start() .WithBrowser(browser) .WithHeadless(headless) .WithWindowSize(windowSize) .WithIsLocal(isLocal) .WithGridUri(new Uri(gridUri)) .WithPlatformType(platformType); WebDriverConfiguration expectedConfig = webDriverConfigurationBuilder.Build(); string requestedJson = expectedConfig.SerializeToJson(); string jsonConfigString = webDriverConfigurationBuilder.GetJsonConfigString(); // Act WebDriverConfiguration returnedConfig = WebDriverConfiguration.DeserializeFromJson(requestedJson); WebDriverConfiguration configFromJsonConfigString = WebDriverConfiguration.DeserializeFromJson(jsonConfigString); // Assert configFromJsonConfigString.Should().BeEquivalentTo(returnedConfig); }
private WebDriverListener GetLocalWebDriver(WebDriverConfiguration driverConfig, L logger) { switch (driverConfig.BrowserName) { case Browser.Chrome: new DriverManager().SetUpDriver(new ChromeConfig()); var chromeDriver = new ChromeDriver(WebDriverSettings.ChromeOptions(driverConfig)); return(new WebDriverListener(chromeDriver, logger)); case Browser.Firefox: new DriverManager().SetUpDriver(new FirefoxConfig()); var firefoxDriver = new FirefoxDriver(WebDriverSettings.FirefoxOptions(driverConfig)); return(new WebDriverListener(firefoxDriver, logger)); case Browser.InternetExplorer: new DriverManager().SetUpDriver(new InternetExplorerConfig()); var ieDriver = new InternetExplorerDriver(WebDriverSettings.InternetExplorerOptions()); return(new WebDriverListener(ieDriver, logger)); case Browser.Edge: new DriverManager().SetUpDriver(new EdgeConfig()); var edgeDriver = new EdgeDriver(WebDriverSettings.EdgeOptions()); return(new WebDriverListener(edgeDriver, logger)); default: throw new ArgumentOutOfRangeException(nameof(Configuration.WebDriver.BrowserName), Configuration.WebDriver.BrowserName, null); } }
private WebDriverListener GetRemoteDriver(WebDriverConfiguration driverConfig, L logger) { switch (driverConfig.BrowserName) { case Browser.Chrome: return(new WebDriverListener(new RemoteWebDriver(new Uri(driverConfig.GridUrl), WebDriverSettings.ChromeOptionsForRemote(driverConfig)), logger)); case Browser.Firefox: return(new WebDriverListener(new RemoteWebDriver(new Uri(driverConfig.GridUrl), WebDriverSettings.FirefoxOptions(driverConfig)), logger)); case Browser.InternetExplorer: return(new WebDriverListener(new RemoteWebDriver(new Uri(driverConfig.GridUrl), WebDriverSettings.InternetExplorerOptions()), logger)); case Browser.Edge: return(new WebDriverListener(new RemoteWebDriver(new Uri(driverConfig.GridUrl), WebDriverSettings.EdgeOptions()), logger)); default: throw new ArgumentOutOfRangeException(nameof(Configuration.WebDriver.BrowserName), Configuration.WebDriver.BrowserName, null); } }
public static FirefoxOptions FirefoxOptions(WebDriverConfiguration config) { var options = new FirefoxOptions { AcceptInsecureCertificates = true }; options.SetPreference("intl.accept_languages", config.BrowserLanguage); return(options); }
public ParserService(IDatabase database, ApplicationConfiguration applicationConfiguration, WebDriverConfiguration parserConfiguration) { _database = database; _applicationConfiguration = applicationConfiguration; _parserConfiguration = parserConfiguration; _triggerTimer = new Timer(applicationConfiguration.RepeatEvery.TotalMilliseconds); _triggerTimer.Elapsed += (_, __) => Trigger(); }
public void ConfigurationCorrectlySerialisesAndDeserialises(int width, int height) { // Arrange WebDriverConfiguration testConfig = WebDriverConfigurationBuilder.Start().WithCustomSize(new Size(width, height)).Build(); // Act string serialisedConfig = testConfig.SerializeToJson(); WebDriverConfiguration deserialisedConfig = WebDriverConfiguration.DeserializeFromJson(serialisedConfig); // Assert deserialisedConfig.Should().BeEquivalentTo(testConfig); }
public void CustomSizeBrowserIsOfRequestedSize(WindowSize windowSize, int expectedWidth, int expectedHeight) { WebDriverConfiguration configuration = WebDriverConfigurationBuilder.Start() .WithBrowser(Browser.Firefox) .RunHeadless() .WithCustomSize(new Size(expectedWidth, expectedHeight)) .Build(); TestContext.WriteLine($"Configuration = {JsonConvert.SerializeObject(configuration, sizeJsonConverter)}"); Driver = WebDriverFactory.GetWebDriver(configuration); Assertions.AssertThatBrowserWindowSizeIsCorrect(Driver, expectedWidth, expectedHeight); }
public static ChromeOptions ChromeOptionsForRemote(WebDriverConfiguration config) { var options = new ChromeOptions(); options.AddAdditionalCapability("enableVNC", true, true); if (config.Video) { options.AddAdditionalCapability("enableVideo", true, true); } return(options); }
protected virtual void Dispose(bool disposing) { if (!_disposedStatus) { if (disposing) { WebDriverConfiguration?.Dispose(); } } _disposedStatus = true; }
public void CustomSizeConfigurationDeSerialisesWithCorrectWidthAndHeight(int width, int height) { // Arrange var webDriverConfigurationBuilder = WebDriverConfigurationBuilder.Start().WithCustomSize(new Size(width, height)); WebDriverConfiguration expectedConfig = webDriverConfigurationBuilder.Build(); string requestedJson = expectedConfig.SerializeToJson(); // Act WebDriverConfiguration returnedConfig = WebDriverConfiguration.DeserializeFromJson(requestedJson); // Assert returnedConfig.Should().BeEquivalentTo(expectedConfig); }
/// <summary> /// Generate the WebDriverConfiguration from the current state of the builder. /// </summary> /// <returns></returns> public WebDriverConfiguration Build() { WebDriverConfiguration webDriverConfiguration = new WebDriverConfiguration( this.browser, this.gridUri, this.headless, this.isLocal, this.platformType, this.windowSize, this.windowDefinedSize); Logger.Debug($"Configuration built: {webDriverConfiguration}"); return(webDriverConfiguration); }
public static ChromeOptions ChromeOptions(WebDriverConfiguration config) { var options = new ChromeOptions(); options.AddAdditionalCapability("useAutomationExtension", false); options.AddExcludedArgument("enable-automation"); options.AddArgument("--disable-save-password-bubble"); options.AddArgument("ignore-certificate-errors"); options.AddArgument("start-maximized"); options.AddArgument($"--lang={config.BrowserLanguage}"); options.AddUserProfilePreference("intl.accept_languages", config.BrowserLanguage); return(options); }
public static FirefoxOptions FirefoxOptions(WebDriverConfiguration config) { var options = new FirefoxOptions { AcceptInsecureCertificates = true }; options.SetPreference("intl.accept_languages", config.BrowserLanguage); if (config.Headless) { options.AddArgument("-headless"); } return(options); }
private void CompareJsonEquivalence(WebDriverConfigurationBuilder webDriverConfigurationBuilder) { // Arrange string formattedString = webDriverConfigurationBuilder.GetJsonConfigString(); WebDriverConfiguration expectedConfig = webDriverConfigurationBuilder.Build(); string requestedJson = expectedConfig.SerializeToJson(); // Act WebDriverConfiguration returnedConfig = WebDriverConfiguration.DeserializeFromJson(requestedJson); WebDriverConfiguration configFromFormattedString = WebDriverConfiguration.DeserializeFromJson(formattedString); // Assert returnedConfig.Should().BeEquivalentTo(configFromFormattedString); }
public void CustomSizeConfigurationSerialisesWithCorrectWidthAndHeight(int width, int height) { // Arrange WebDriverConfiguration testedConfig = WebDriverConfigurationBuilder.Start().WithCustomSize(new Size(width, height)).Build(); // Act string actualJson = testedConfig.SerializeToJson(); //Assert using (new AssertionScope()) { actualJson.Should().Contain("\"PlatformType\":\"Windows\""); actualJson.Should().Contain("\"WindowSize\":\"Defined\""); actualJson.Should().Contain($"\"WindowDefinedSize\":{{\"width\":{width},\"height\":{height}}}"); actualJson.Should().Contain("\"GridUri\":\"http://localhost:4444\""); } }
public WebDriverListener GetWebDriver(WebDriverConfiguration driverConfig, L logger) { return(driverConfig.BrowserType == BrowserType.Local ? GetLocalWebDriver(driverConfig, logger) : GetRemoteDriver(driverConfig, logger)); }