如何使用SeleniumWebDriver设置浏览器客户端区域大小?

如何使用SeleniumWebDriver设置浏览器客户端区域大小?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我找到了如何在Selenium问题管理系统中设置浏览器窗口大小(请参阅): 但这个解决方案设置了整个窗口的大小(标题栏、书签栏、边框等),所以客户端区域在不同的浏览器中有不同的大小。有没有办法简单地为流行浏览器(Chrome、FireFox、Internet Explorer、Opera和Safari)设置相同的值?如果我不需要评估JavaScript,那就太好了。使用一块Javascipt会更容易,但是既然你没有问: Dimension win_size = driver.manage().w

我找到了如何在Selenium问题管理系统中设置浏览器窗口大小(请参阅):


但这个解决方案设置了整个窗口的大小(标题栏、书签栏、边框等),所以客户端区域在不同的浏览器中有不同的大小。有没有办法简单地为流行浏览器(Chrome、FireFox、Internet Explorer、Opera和Safari)设置相同的值?如果我不需要评估JavaScript,那就太好了。

使用一块Javascipt会更容易,但是既然你没有问:

Dimension win_size = driver.manage().window().getSize();
WebElement html = driver.findElement(By.tagName("html"));
int inner_width = Integer.parseInt(html.getAttribute("clientWidth"));
int inner_height = Integer.parseInt(html.getAttribute("clientHeight"));

// set the inner size of the window to 400 x 400 (scrollbar excluded)
driver.manage().window().setSize(new Dimension(
    win_size.width + (400 - inner_width),
    win_size.height + (400 - inner_height)
));
用一段Javascript以防万一:

ArrayList padding = (ArrayList)((JavascriptExecutor) driver).executeScript(
  "return [window.outerWidth-window.innerWidth, window.outerHeight-window.innerHeight];");

// set the inner size of the window to 400 x 400 (scrollbar included)
driver.manage().window().setSize(new Dimension(
    (int)(400 + (Long)padding.get(0)),
    (int)(400 + (Long)padding.get(1))
));

一个解决方案是通过
driver.get()
切换窗口,然后在该区域上管理
窗口的大小。你考虑过这种可能性吗?如果我称之为空白页,这是工作吗?步骤:启动浏览器,查看默认页面(例如空白),设置大小,导航到具体页面第一个示例可能不适用于空白页面,但是第二个示例应该可以。
ArrayList padding = (ArrayList)((JavascriptExecutor) driver).executeScript(
  "return [window.outerWidth-window.innerWidth, window.outerHeight-window.innerHeight];");

// set the inner size of the window to 400 x 400 (scrollbar included)
driver.manage().window().setSize(new Dimension(
    (int)(400 + (Long)padding.get(0)),
    (int)(400 + (Long)padding.get(1))
));