2014-04-30 385 views
25

我使用Selenium WebDriver進行自動化,我使用的是Chromedriver如何控制Chromedriver打開的窗口大小?

我注意到,當我的驅動程序運行並打開Chrome瀏覽器時,它會以奇怪的大小打開瀏覽器。 我試圖修復它,但徒勞無功。

有誰知道我該如何改變它?

+0

您使用的是什麼語言的綁定?該API提供了設置窗口大小的方法,無論您使用的是哪個驅動程序(除非您遇到ChromeDriver的特定問題,那麼請在此情況下提供更多信息)。這裏有一篇你可能想看的文章。 [如何使用Selenium WebDriver獲取窗口大小,調整窗口大小或最大化](http://yizeng.me/2014/02/23/how-to-get-window-size-resize-or-maximize-window-using- selenium-webdriver /) –

回答

3

driver.manage.window.maximize();嘗試最大化窗口。

+0

謝謝,但我不想要一個完整的屏幕,但要通過我自己的大小來修復窗口的大小。 由於某些原因,Chromedriver在打開瀏覽器時修復了窗口大小。 –

6

試試這個driver.Manage().Window.Size = new Size(width, height);

21

使用此爲您的自定義尺寸:

driver.manage().window().setSize(new Dimension(1024,768)); 

你可以改變你的尺寸相同,您的要求。

+0

似乎無法用於無頭Chrome(版本60)。然而,@Yonatan Kiron的答案確實有效 – Illidan

0

如果您正在使用Facebook的語言PHP的結合試試這個:

$driver->manage()->window()->setSize(new WebDriverDimension(1024,768)); 
4

#use chrome webdriver
driver = webdriver.Chrome('path to /chromedriver') driver.set_window_size(1400,1000)

+0

這是鏈接到webdriver chrome http://chromedriver.storage.googleapis.com/index.html?path=2.22/ –

0

是Java/Groovy的嘗試:

import java.awt.Toolkit; 
import org.openqa.selenium.Dimension;   
import org.openqa.selenium.Point; 

... 

java.awt.Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 

Dimension maximizedScreenSize = new Dimension((int) screenSize.getWidth(), (int) screenSize.getHeight()); 
driver.manage().window().setPosition(new Point(0, 0)); 
driver.manage().window().setSize(maximizedScreenSize); 

這將在全屏

打開瀏覽器
0

如果您使用Clojure和https://github.com/semperos/clj-webdriver您可以使用這段代碼來調整瀏覽器的大小。

(require '[clj-webdriver.taxi :as taxi]) 

; Open browser 
(taxi/set-driver! {:browser :chrome} "about:blank") 

; Resize browser 
(-> taxi/*driver* (.webdriver) (.manage) (.window) 
    (.setSize (org.openqa.selenium.Dimension. 0 0))) 
0

使用Dimension Class來控制窗口大小。

Dimension d = new Dimension(1200,800); //(x,y coordinators in pixels) 
driver.manage().window().setSize(d); 
-2

使用此:

driver.manage().window().setSize(new Dimension(1920,1080)); 
+0

是的,這完全沒有被髮布爲答案之前。 –

37

我知道這是一個古老的線程,但上述非爲我工作。 我使用

chrome = 57.0.2987.133 
chromedriver = 2.27.440174 

而這個工作對我來說:

from selenium.webdriver.chrome.options import Options 

chrome_options = Options() 
chrome_options.add_argument("--window-size=1920,1080") 
driver = Chrome(chrome_options=chrome_options) 
+1

是的,最新的窗口調整大小在chromedriver中是有問題的,他們說它在2.28版本中是固定的,但是我在該版本中也出現了錯誤。我也最終使用命令行開關並將窗口大小作爲參數傳遞。 –

+0

謝謝!使用ChromeDriver 2.32,這是適用於無頭變化的唯一選項。 C#Windows。 driver.Manage()。Window.Size不起作用。 –

+0

我注意到,它似乎有一個最大的大小,它會默默地回覆,如果你走了。 (我的機器,1940像素高,但它似乎有所不同。) – Oddthinking

0

的Ruby版本:

caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args"=> ["--window-size=1280,960"]}) 

url = "http://localhost:9515" # if you are using local chrome or url = Browserstack/ saucelabs hub url if you are using cloud service providers. 

Selenium::WebDriver.for(:remote, :url => url, :desired_capabilities => caps) 

調整大小的鍍鉻是最新chromedrivers越野車,它與這個失敗消息intermittanly失敗。

     unknown error: cannot get automation extension 
from timeout: cannot determine loading status 
from timeout: Timed out receiving message from renderer: -65.294 
    (Session info: chrome=56.0.2924.76) 
    (Driver info: chromedriver=2.28.455517 (2c6d2707d8ea850c862f04ac066724273981e88f) 

並resizeTo通過JavaScript也不支持鉻通過硒webdriver啓動。所以最後的選擇是使用命令行開關。

2

@ yonatan-kiron的答案的C#版本和Selenium的示例代碼中的using聲明。

ChromeOptions chromeOptions = new ChromeOptions(); 
chromeOptions.AddArgument("--window-size=1300,1000"); 

using (IWebDriver driver = new ChromeDriver(chromeOptions)) 
{ 
    ... 
} 
相關問題