Я нашел решение, которое не выполняет тесты одновременно в нескольких браузерах, но работает, когда вы выполняете проект вручную и динамически получаете тип драйвера:
switch (Configuration["DriverType"])
{
case "firefox":
var firefoxService = FirefoxDriverService.CreateDefaultService(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "geckodriver.exe");
firefoxService.FirefoxBinaryPath = Configuration["FirefoxPath"];
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.SetPreference("browser.download.dir", Configuration["DownloadPath"]);
firefoxOptions.SetPreference("browser.download.useDownloadDir", true);
firefoxOptions.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream");
Driver = new FirefoxDriver(firefoxService, firefoxOptions);
break;
case "chrome":
var chromeOptions = new ChromeOptions();
chromeOptions.AddUserProfilePreference("safebrowsing.enabled", true);
Driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), chromeOptions);
break;
}
Я использую сценарий PowerShell для запуска .dll и записи типа драйвера в файл appsettings.json через этот сценарий.Пример:
$file = Get-Content "appsettings.json" -raw | ConvertFrom-Json
$file.DriverType = "chrome"