public void ConfigureDriver(TestContext context, ScenarioContext scenario)
        {
            context.VideoWebConfig.TestConfig.TargetBrowser        = DriverManager.GetTargetBrowser(NUnit.Framework.TestContext.Parameters["TargetBrowser"]);
            context.VideoWebConfig.TestConfig.TargetBrowserVersion = NUnit.Framework.TestContext.Parameters["TargetBrowserVersion"];
            context.VideoWebConfig.TestConfig.TargetDevice         = DriverManager.GetTargetDevice(NUnit.Framework.TestContext.Parameters["TargetDevice"]);
            context.VideoWebConfig.TestConfig.TargetDeviceName     = NUnit.Framework.TestContext.Parameters["TargetDeviceName"];
            context.VideoWebConfig.TestConfig.TargetOS             = DriverManager.GetTargetOS(NUnit.Framework.TestContext.Parameters["TargetOS"]);

            var driverOptions = new DriverOptions()
            {
                TargetBrowser        = context.VideoWebConfig.TestConfig.TargetBrowser,
                TargetBrowserVersion = context.VideoWebConfig.TestConfig.TargetBrowserVersion,
                TargetDevice         = context.VideoWebConfig.TestConfig.TargetDevice,
                TargetOS             = context.VideoWebConfig.TestConfig.TargetOS,
                HeadlessMode         = context.ZapConfiguration.HeadlessMode
            };

            var sauceLabsOptions = new SauceLabsOptions()
            {
                EnableLogging = false,
                Name          = scenario.ScenarioInfo.Title
            };

            OpenQA.Selenium.Proxy proxy = null;

            if (Zap.SetupProxy)
            {
                proxy = new OpenQA.Selenium.Proxy();
                var proxySetting = $"{context.ZapConfiguration.ApiAddress}:{context.ZapConfiguration.ApiPort}";
                proxy.HttpProxy = proxySetting;
                proxy.SslProxy  = proxySetting;
            }

            context.Driver = new DriverSetup(context.VideoWebConfig.SauceLabsConfiguration, driverOptions, sauceLabsOptions, proxy);
        }
        protected ChromeOptions GetOptions(ISetting setting)
        {
            var options = new ChromeOptions();

            var browserSetting = setting as BrowserSetting;

            if (browserSetting?.Remote == true)
            {
                options.AddAdditionalCapability("version", browserSetting.RemoteVersion, true);
                options.AddAdditionalCapability("enableVNC", true, true);
                options.AddAdditionalCapability("platform", "ANY", true);
            }
            options.AddArguments("--no-sandbox");
            options.AddArgument("--disable-dev-shm-usage");
            if (browserSetting.Headless == true)
            {
                options.AddArguments("--headless");
            }
            options.AddArguments("--disable-gpu");

            if (browserSetting.Authentication != null)
            {
                var proxy     = new OpenQA.Selenium.Proxy();
                int localPort = _proxyServer.Value.AddEndpoint(browserSetting.Authentication);
                proxy.HttpProxy = $"127.0.0.1:{localPort}";
                options.Proxy   = proxy;
                options.AddArgument($"--proxy-server=127.0.0.1:{localPort}");
            }
            return(options);
        }
        /// <summary>
        /// Creates the proxy object of the selenium webDriver.
        /// </summary>
        /// <param name="proxyPort">proxy port that will be used by the proxy.</param>
        /// <returns>returns the proxy object.</returns>
        public static OpenQA.Selenium.Proxy CreateProxy(string proxyPort)
        {
            var proxy = new OpenQA.Selenium.Proxy
            {
                SslProxy  = $"localhost:{proxyPort}",
                HttpProxy = $"localhost:{proxyPort}",
            };

            return(proxy);
        }
示例#4
0
        public void test()
        {
            var seleniumProxy = new Proxy {
                HttpProxy = "localhost:8877", SslProxy = "localhost:8877"
            };
            var option = new FirefoxOptions {
                Proxy = seleniumProxy
            };
            var slenium = new FirefoxDriver(option);

            const FiddlerCoreStartupFlags fiddlerStartUpFlags = FiddlerCoreStartupFlags.DecryptSSL & FiddlerCoreStartupFlags.AllowRemoteClients & FiddlerCoreStartupFlags.CaptureFTP & FiddlerCoreStartupFlags.ChainToUpstreamGateway & FiddlerCoreStartupFlags.MonitorAllConnections & FiddlerCoreStartupFlags.CaptureLocalhostTraffic;

            FiddlerApplication.Prefs.SetStringPref("fiddler.config.path.makecert", @"d:\..\Makecert.exe"); //To define the MakeCert.exe path manually.
            FiddlerApplication.Prefs.SetBoolPref("fiddler.network.streaming.abortifclientaborts", true);   //Abort session when client abort
            FiddlerApplication.Startup(8877, fiddlerStartUpFlags);
            FiddlerApplication.AfterSessionComplete += delegate(Session targetSession)
            {
                Console.WriteLine("{0}\t{1}", targetSession.responseCode, targetSession.fullUrl);
            };
            slenium.Navigate().GoToUrl("http://google.com");
            FiddlerApplication.oProxy.PurgeServerPipePool();//Run this between tests to make sure the new test will start "clean"
            slenium.Quit();
        }