针对天蓝色的devops发布管道运行自动化测试时,使用Environment.GetEnvironmentVariable(“ ChromeWebDriver”)的替代方法

时间:2019-06-06 10:03:32

标签: c# azure-devops selenium-chromedriver

我们使用selenium chrome webdriver通过c#运行自动化测试,既可以在本地运行这些测试,也可以通过针对代理的azure devops发布管道来运行。

针对天蓝色代理运行时,我们设置了代理可以使用的各种环境设置。

据此:https://github.com/MicrosoftDocs/vsts-docs/issues/2379 使用Environment.GetEnviromentVariable(“ ChromeWebDriver”) 导致我们正在遇到的天蓝色代理超时。 那么环境是否有其他替代方法。我可以代替它使用GetEnvironmentVariable吗?

我们使用以下代码:

在设置浏览器的Browser Factory文件中,我们具有以下内容:

var pathToChromeDriver = (testSettings != null && testSettings.UseChromeDriverFromEnvironmentSetting.HasValue
&& testSettings.UseChromeDriverFromEnvironmentSetting.Value)

? Environment.GetEnvironmentVariable("ChromeWebDriver")

: Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

browser = new ChromeDriver(pathToChromeDriver, optionsC);

Tried using:    
browser = new chromeDriver() doesnt work.

This is the chrome webdriver:

case BrowserType.Chrome:
                    var optionsC = new ChromeOptions()
                    {
                        LeaveBrowserRunning = false,
                    };
                    optionsC.AddArgument("--start-maximized");
                    if (testSettings != null && testSettings.RunChromeHeadless.HasValue && testSettings.RunChromeHeadless.Value)
                    {
                        optionsC.AddArgument("--headless");
                    }
                    optionsC.AddArgument("--test-type");
                    optionsC.AddArgument("disable-geolocation");
                    optionsC.AddArgument("--disable-popup-blocking");
                    optionsC.AddArguments("--disable-infobars");
                    optionsC.AddArgument("--incognito");
                    //optionsC.AddArguments("--headless");
                    optionsC.AddAdditionalCapability("useAutomationExtension", false);
                    optionsC.SetLoggingPreference(LogType.Driver, LogLevel.All);

                    var pathToChromeDriver = (testSettings != null && testSettings.UseChromeDriverFromEnvironmentSetting.HasValue
                                                                   && testSettings.UseChromeDriverFromEnvironmentSetting.Value)
                        ? Environment.GetEnvironmentVariable("ChromeWebDriver")
                        : Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

                    browser = new ChromeDriver(pathToChromeDriver, optionsC);
                    break;

0 个答案:

没有答案