如何并行运行两个“无头”而另一个是标准的Chrome Web驱动器?

时间:2019-04-08 10:29:18

标签: c# selenium selenium-chromedriver nunit-3.0

我有2个chrome浏览器驱动程序,用于检查管理员和用户端并行情况。

我希望其中只有一个在“无头”模式下运行(第二个在标准模式下运行)。

当我设置2个chrome网络驱动程序时;第一无头,第二标准, 第二个网络驱动程序的标准模式没有生效,并且都以'headless'生效。

只要我将 first 设置为标准,将 second 设置为“无头”,它就可以正常工作(第一为标准,第二为无头)

看起来,一旦您将第一个Web驱动程序定义为无头状态,它也会影响第二个。


我正在寻求解决问题的方法,并且不想提供更改驾驶员操作顺序的提议。


我的代码是:

        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 :(得分:0)

似乎两个浏览器初始化都使用相同的Chrome选项。 为每种方法分别设置镶边选项,它将可以正常工作。