Кроссбраузерное тестирование в xUnit с Selenium

Я хотел бы запустить свои модульные тесты в разных браузерах с помощью Selenium и xUnit. На протяжении всего исследования я не мог найти подходящего решения. Я нашел несколько вариантов с nUnit, но они мне не подходят.

Программа должна выполнять все тесты в трех разных браузерах (IE, Chrome, Firefox). Также количество браузеров должно быть настраиваемым.

Есть какое-нибудь правильное решение?

Попробуйте взглянуть на: stackoverflow.com/questions/28480545/…

Kiksen 30.11.2018 14:17

@Kiksen Это решение от nUnit, но я пытаюсь найти его с помощью xUnit.

MauriceDev 30.11.2018 14:31
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
2
1 229
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

На данный момент не существует идеального способа сделать это, но вы должны попробовать пакет Watin.core. Этот пакет будет поддерживать IE и браузер Firefox, и если вы хотите выполнить тест в браузере Chrome, вам не повезло с использованием пакета Watin.core.

Ответ принят как подходящий

Я нашел решение, которое на самом деле не выполняет тесты в нескольких браузерах одновременно, но оно работает, когда вы выполняете проект вручную и динамически получаете тип драйвера:

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"

Другие вопросы по теме