[英]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.