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

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

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

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

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

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


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


Мой код:

        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();
        }


1 Ответ

0 голосов
/ 09 апреля 2019

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

...