簡體   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