public DriverFixture() { _host = new WebHostBuilder() .UseKestrelAnyLocalPort() .ConfigureServices(services => { services.AddRouting(); }) .Configure(ConfigureApp) .Build(); Parallel.Invoke( () => _host.Start(), () => FirefoxDriver = new RemoteWebDriver(new FirefoxOptions().Headless())); _elementNaming = new ElementNaming(); _config = new PageTestingConfig(); _baseUrl = _host.Services .GetService <IServer>() .Features.Get <IServerAddressesFeature>() .Addresses.First(); var loggerFactory = LoggerConfigurations.CreateLoggerFactory(cfg => { cfg.MinimumLevel.Override("Miru.PageTesting", LogEventLevel.Debug); }); _logger = loggerFactory.CreateLogger <MiruNavigator>(); }
public static void UseChrome(this PageTestingConfig config, ChromeOptions options = null) { config.Services.AddSingleton <RemoteWebDriver>(ctx => new RemoteWebDriver(options ?? new ChromeOptions())); config.Services.AddSingleton <MiruNavigator>(sp => { var driver = sp.GetService <RemoteWebDriver>(); return(new ChromeNavigator( sp.GetService <WebDriverWait>(), sp.GetService <ElementNaming>(), () => driver.FindElement(By.TagName("body")), driver, sp.GetService <ILogger <MiruNavigator> >())); }); }