2016-03-31 26 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

最初の例は、おそらく空白のページでは機能しませんが、2番目の例は機能するはずです。 –

+0

スクリプトを実行するこのコードを使用しました:) – agabrys

関連する問題