我想知道如何使用最流行的浏览器使用Selenium Grid和RemoteWebDriver来最大化浏览器窗口。
此问题尚未在此社区中得到解决,还有另一个问题可能如下所示:How do I maximize the browser window in Selenium WebDriver (Selenium 2) using C#?但是在该问题中并不清楚如何在RemoteWebDriver中最大化浏览器窗口。
在Firefox和IE上,我猜它的方式与driver.manage().window().maximize();
在Chrome中我们必须这样做:
ChromeOptions options = new ChromeOptions();
options.AddArgument("--start-maximized");
driver = new ChromeDriver(options);
问题是如何将其应用于RemoteWebDriver?
答案 0 :(得分:3)
如果我正确理解你的问题,你想知道如何将驱动程序选项传递给远程驱动程序。在这种情况下你需要创建驱动程序对象,你需要创建欲望功能并使用远程驱动程序的构造函数之一参数。例如
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抽象驱动程序配置和管理。你可以set driver capabilities使用属性。作为替代您也可以将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();
}
答案 1 :(得分:0)
在Java中你可以这样做:
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
RemoteWebDriver driver = new ChromeDriver(options);
评论中已经暗示过这一点,但要指出:您可以将ChromeDriver
个实例分配给RemoteWebDriver
类型。