如何 运行 并行 2 chrome 网络驱动器,其中一个是 'headless' 而另一个是标准的?

How to run parallel 2 chrome web-drives that one is 'headless' and the other is standard?

我有 2 个 chrome 网络驱动程序用于并行检查管理员和用户端。

我希望其中一个 运行 处于 'headless' 模式(第二个处于标准模式)。

当我设置 2 个 chrome 网络驱动程序时;第一无头,第二标准, 第二个网络驱动程序的标准模式没有受到影响,并且两者都受到影响'headless'

只要我将 first 设置为标准,将 second 设置为 'headless',它就可以正常工作(首先作为标准,第二个是无头)

看起来好像一旦你在无头状态下定义了第一个网络驱动程序,它也会影响第二个。


求解决问题,不想要更改驱动程序操作顺序的offer


我的代码是:

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


您似乎对两个浏览器初始化使用了相同的 chrome 选项。 为每个方法设置单独的 chrome 选项,它将正常工作。