【发布时间】:2015-11-15 14:30:08
【问题描述】:
我正在玩我使用 selenium 开发的 web 应用程序页面。
我使用 selenium JavaScriptExecutor 执行了以下脚本。
executor.executeScript("return window.innerWidth");
executor.executeScript("return window.innerHeight");
令我惊讶的是,所谓的视口大小与 Chrome、IE 和 Firefox 不同。
铬:1366x667 即:1366x667 火狐:1366x657
然后我意识到对于 body 和 main div,就在 body 旁边,我将 css 样式的宽度和高度设置为 100%,这反过来会影响视口大小。由于不同的浏览器有不同大小的工具栏和菜单,这个 100% 的值会在实际页面呈现时发生变化。
所以我使用 window.resizeTo(w,h) 来设置一个通用的视口大小。但我意识到它不适用于现代浏览器,除非窗口是由同一个脚本打开的。
所以我用了硒的
driver.manage().window().setSize(new Dimension(w,h));
但我无法设置通用视口大小。
请帮助查找,是否可以使用 selenium 设置常见的视口大小? 如果您需要更多信息,请告诉我。
我为所有浏览器执行了以下行:
driver.manage().window().getSize();
我得到的答案是 1382x744
所以我相信这关乎整个浏览器窗口,而不仅仅是渲染区域。 我很困惑,基于innerWidth的差异如何计算浏览器窗口的新大小?
PS:我已将所有浏览器升级到最新版本(IE 是版本 11,因为我在 windows 7 上),selenium 版本我使用的是 2.46.x
【问题讨论】:
-
您是否尝试过仅传递 (w, h) 而没有“新维度”?
driver.manage().window().setSize(w, h); -
@TomNetzband:是的,我试过了,我有点困惑。当为所有浏览器使用获取尺寸时,它是 1382x 744,所以我不确定如何根据 innerWidth 计算并为浏览器窗口获取新尺寸,因为这个尺寸不仅会影响整个浏览器的渲染区域。
-
this article 中描述的一些概念可能会有所帮助。
标签: javascript html selenium selenium-webdriver