Selenium Grid:如何使用 RemoteWebDriver 和 ChromeDriver 最大化浏览器 window

Selenium Grid: how to maximize browser window using RemoteWebDriver and ChromeDriver

我想知道如何在最流行的浏览器中使用 Selenium Grid 和 RemoteWebDriver 来最大化浏览器 window。

这个问题在这个社区还没有解决,还有一个问题可能是这样的:How do I maximize the browser window in Selenium WebDriver (Selenium 2) using C#?但是在那个问题中不清楚如何在RemoteWebDriver中最大化浏览器window .

在 Firefox 和 IE 上我猜是一样的 driver.manage().window().maximize();

在Chrome中我们必须做:

ChromeOptions options = new ChromeOptions(); options.AddArgument("--start-maximized"); driver = new ChromeDriver(options);

问题是如何将其应用于 RemoteWebDriver?

在 Java 中你可以这样做:

ChromeOptions options = new ChromeOptions(); 
options.addArguments("--start-maximized"); 
RemoteWebDriver driver = new ChromeDriver(options); 

评论中已经暗示,但要指出:您可以将 ChromeDriver 实例分配给 RemoteWebDriver 类型。

如果我正确理解你的问题,你想知道如何将驱动程序选项传递给远程 driver.In 在这种情况下,无论你在哪里创建驱动程序对象,你都需要创建所需的功能并使用其中一个构造函数具有功能参数的远程驱动程序。例如

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

ChromeOptions options = new ChromeOptions(); 
options.addArguments("--start-maximized"); 

capabilities.setCapability(ChromeOptions.CAPABILITY, options);

driver = new RemoteWebDriver(URL, capabilities);
//driver = new ChromeDriver(capabilities);

您也可以使用 QAF which abstraction driver configuration and management outside the code. Where you can set driver capabilities by using properties. As alternate You also can use Driver listener 来达到这个目的。例如:

使用属性:

以下两个属性将满足 chrome 驱动程序的需要:

drive.name=chromeDriver
chrome.additional.capabilities={"chromeOptions":{"args":["--start-maximized"]}}

对于远程驱动程序:

remote.server=<remote server or grid url>
drive.name=chromeRemoteDriver
chrome.additional.capabilities={"chromeOptions":{"args":["--start-maximized"]}}

使用侦听器:

void beforeInitialize(Capabilities capabilities){
    if(capabilities.getBrowserName().equalIgnorCase("chrome"){
        ChromeOptions options = new ChromeOptions(); 
        options.addArguments("--start-maximized"); 
        ((DesiredCapabilities)capabilities).setCapability(ChromeOptions.CAPABILITY, options);
    }
}

void onInitialize(QAFExtendedWebDriver driver){
   //for browser other than chrome...
   driver.manage().window().maximize();
}