2016-03-31 3 views
2

я нашел, как установить размер окна браузера в системе управления Выпуск Селен (см Browser window control #174):Как настроить размер клиентской области браузера с помощью Selenium WebDriver?

Window window = driver.manage().window(); 
window.setPosition(new Point(0, 0)); 
window.setSize(new Dimension(width, height)); 

Но это решение устанавливает размер для всего окна (строка заголовка, панель закладок, границы и т.д.), поэтому клиентской области имеет разные размеры в разных браузерах. Есть ли способ просто установить одинаковое значение для популярных браузеров (Chrome, FireFox, Internet Explorer, Opera и Safari)? Будет здорово, если мне не нужно будет анализировать JavaScript.

+0

Решение может быть окно для переключения через 'driver.get()', а затем управляйте размером 'window', когда вы находитесь в этой области. Вы думали об этой возможности? –

ответ

3

Было бы легче с куском Javascipt, но так как вы просили без:

Dimension win_size = driver.manage().window().getSize(); 
WebElement html = driver.findElement(By.tagName("html")); 
int inner_width = Integer.parseInt(html.getAttribute("clientWidth")); 
int inner_height = Integer.parseInt(html.getAttribute("clientHeight")); 

// set the inner size of the window to 400 x 400 (scrollbar excluded) 
driver.manage().window().setSize(new Dimension(
    win_size.width + (400 - inner_width), 
    win_size.height + (400 - inner_height) 
)); 

И с кусочком Javascript только в случае, если:

ArrayList padding = (ArrayList)((JavascriptExecutor) driver).executeScript(
    "return [window.outerWidth-window.innerWidth, window.outerHeight-window.innerHeight];"); 

// set the inner size of the window to 400 x 400 (scrollbar included) 
driver.manage().window().setSize(new Dimension(
    (int)(400 + (Long)padding.get(0)), 
    (int)(400 + (Long)padding.get(1)) 
)); 
+0

Эта работа, если я назову ее на пустой странице? Шаги: запустите браузер, см. Страницу по умолчанию (например, пустое), установите размер, перейдите к конкретной странице <- эта страница должна иметь фиксированный размер. – agabrys

+0

Первый пример, вероятно, не работает с пустой страницей, однако второй должен работать. –

+0

Я использовал этот код, который выполняет скрипт :) – agabrys