繁体   English   中英

设置浏览器的视口大小

[英]Set viewport size for a browser

我正在玩一个由我使用selenium开发的webapplication页面。

使用selenium JavaScriptExecutor我执行了以下脚本。

executor.executeScript("return window.innerWidth");
executor.executeScript("return window.innerHeight");

令我惊讶的是,所谓的视口大小与Chrome,IE和Firefox不同。

Chrome:1366x667 IE:1366x667 Firefox:1366x657

然后我意识到,对于body和main div,在body身旁我给了css样式宽度和高度为100%,这反过来影响了视口大小。 由于不同的borwsers具有不同大小的工具栏和菜单,因此在呈现实际页面时,此100%值会发生变化。

所以我使用window.resizeTo(w,h)来设置公共视口大小。 但我意识到它不适用于现代浏览器,除非窗口由同一个脚本打开。

所以我用了selenium

driver.manage().window().setSize(new Dimension(w,h));

但我无法设置公共视图端口大小。

请帮忙查找,是否可以使用硒设置常见的视口大小? 如果您需要更多信息,请告诉我。

我为所有浏览器执行了以下行:

driver.manage().window().getSize();

我得到的答案是1382x744

所以我相信整个浏览器窗口,而不仅仅是渲染区域。 我很困惑,根据innerWidth的差异如何计算浏览器窗口的新大小?

PS:我已将所有浏览器升级到最新版本 (IE是版本11,因为我在Windows 7上),我使用的selenium版本是2.46.x

“令我惊讶的是,所谓的视口大小与Chrome,IE和Firefox不同。”

在所有浏览器上查看端口大小都不同也不足为奇,Safari甚至也有不同的浏览器。 当你调用window.innerHeight时,它只计算浏览器的内部内容。 因此,不计算其外的任何内容,输入您输入URL的区域不会被计算在内。 因此,每个浏览器的选项卡和全局地址栏使用不同的最大高度。

当你使用driver.manage()。window()。setSize(new Dimension(w,h)); 例如,将其设置为1920x1080,然后将所有浏览器设置为该大小,但当然它们将使用不同的内部高度。

如果您希望整个浏览器呈现为1920x1080,那么我建议使用

using Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_F11);
Thread.sleep(250);    
robot.keyRelease(KeyEvent.VK_F11);

但我建议反对它,因为更有效的测试是使用浏览器的正常内部高度,因为大多数用户不按F11并以全屏查看其内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM