Ejemplo n.º 1
0
        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>();
        }
Ejemplo n.º 2
0
        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> >()));
            });
        }