Как запустить параллельно 2 хромированных веб-диска, один из которых «безголовый», а другой стандартный?

У меня есть 2 хромированных веб-драйвера для параллельной проверки администратора и пользователя.

Я хочу, чтобы только один из них работал в «безголовом» режиме (а второй в стандартном режиме).

Когда я установил 2 веб-драйвера Chrome; первый-безголовый, второй-стандартный, Стандартный режим для второго веб-драйвера не действует, И оба выполняются как «безголовые».

Просто если я установлю первый как стандартный, а второй как «безголовый», он будет работать правильно (первый как стандартный, а второй как безголовый)

Похоже, как только вы определяете первый веб-драйвер в безголовом состоянии, это также влияет на второй.


Прошу решения проблемы, и не хочу предложения изменить порядок работы драйверов.


Мой код:

        private static ChromeOptions chromeOptions = new ChromeOptions();

        public static void InitBrowser(string browserName , string url)
        {
            if(driverAdmin == null)
                switch(browserName)
                {
                    case nameof(Browsers.ChromeAdmin):
                        chromeOptions.AddArgument("headless");
                        chromeOptions.AddArgument("incognito");
                        driverAdmin = new ChromeDriver(ChromeDriverService.CreateDefaultService() , chromeOptions , commandTimeout);
                        Drivers.Add(Browsers.ChromeAdmin.ToString() , driverAdmin);
                        break;
                        ...
                }

        public static void InitBrowserUser(string browserName , string url)
        {
            browser = browserName;

            if(driverUser == null)
                switch(browserName)
                {
                    case nameof(Browsers.ChromeUser):
                        //chromeOptions.AddArgument("headless");
                        chromeOptions.AddArgument("incognito");
                        driverUser = new ChromeDriver(ChromeDriverService.CreateDefaultService() , chromeOptions , commandTimeout);
                        Drivers.Add(Browsers.ChromeUser.ToString() , driverUser);
                        break;
                        ...
                }

        [SetUp]
        public static void SetUp()
        {
            SetupReport();
            InitBrowser(BrowserAdmin , EnvironmentAdmin);
            InitBrowserUser(BrowserUser , EnvironmentUser);
            PrintTestDetails();
        }



person C. Mar    schedule 08.04.2019    source источник


Ответы (1)


Кажется, вы используете одни и те же параметры Chrome для инициализации обоих браузеров. Настройте отдельные параметры хрома для каждого метода, и он будет работать правильно.

person GregM    schedule 09.04.2019
comment
Вау, какое простое решение! Благодарю вас! - person C. Mar; 10.04.2019