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