我有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();
}
答案 0 :(得分:0)
似乎两个浏览器初始化都使用相同的Chrome选项。 为每种方法分别设置镶边选项,它将可以正常工作。