Мы используем веб-драйвер селена хрома для запуска автоматических тестов, используя c #, мы запускаем их локально, а также через конвейеры выпуска azure devops для агентов.
При работе с агентами Azure мы устанавливаем различные параметры среды, которые могут подобрать агенты.
В соответствии с этим: https://github.com/MicrosoftDocs/vsts-docs/issues/2379 с использованием Environment.GetEnviromentVariable ("ChromeWebDriver") приводит к истечению времени ожидания агентов Azure, которое мы наблюдаем.Так есть ли какие-нибудь альтернативы окружающей среде? GetEnvironmentVariable, которую я могу использовать вместо нее?
Мы используем следующий код:
В файле Factory Browser, где мы устанавливаем браузер, у нас есть следующее:
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;