我使用Selenium WebDriver進行自動化,我使用的是Chromedriver。如何控制Chromedriver打開的窗口大小?
我注意到,當我的驅動程序運行並打開Chrome瀏覽器時,它會以奇怪的大小打開瀏覽器。 我試圖修復它,但徒勞無功。
有誰知道我該如何改變它?
我使用Selenium WebDriver進行自動化,我使用的是Chromedriver。如何控制Chromedriver打開的窗口大小?
我注意到,當我的驅動程序運行並打開Chrome瀏覽器時,它會以奇怪的大小打開瀏覽器。 我試圖修復它,但徒勞無功。
有誰知道我該如何改變它?
用driver.manage.window.maximize();
嘗試最大化窗口。
謝謝,但我不想要一個完整的屏幕,但要通過我自己的大小來修復窗口的大小。 由於某些原因,Chromedriver在打開瀏覽器時修復了窗口大小。 –
試試這個driver.Manage().Window.Size = new Size(width, height);
使用此爲您的自定義尺寸:
driver.manage().window().setSize(new Dimension(1024,768));
你可以改變你的尺寸相同,您的要求。
似乎無法用於無頭Chrome(版本60)。然而,@Yonatan Kiron的答案確實有效 – Illidan
如果您正在使用Facebook的語言PHP的結合試試這個:
$driver->manage()->window()->setSize(new WebDriverDimension(1024,768));
#use chrome webdriver
driver = webdriver.Chrome('path to /chromedriver') driver.set_window_size(1400,1000)
這是鏈接到webdriver chrome http://chromedriver.storage.googleapis.com/index.html?path=2.22/ –
是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);
這將在全屏
打開瀏覽器如果您使用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)))
使用Dimension Class
來控制窗口大小。
Dimension d = new Dimension(1200,800); //(x,y coordinators in pixels)
driver.manage().window().setSize(d);
使用此:
driver.manage().window().setSize(new Dimension(1920,1080));
是的,這完全沒有被髮布爲答案之前。 –
我知道這是一個古老的線程,但上述非爲我工作。 我使用
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)
是的,最新的窗口調整大小在chromedriver中是有問題的,他們說它在2.28版本中是固定的,但是我在該版本中也出現了錯誤。我也最終使用命令行開關並將窗口大小作爲參數傳遞。 –
謝謝!使用ChromeDriver 2.32,這是適用於無頭變化的唯一選項。 C#Windows。 driver.Manage()。Window.Size不起作用。 –
我注意到,它似乎有一個最大的大小,它會默默地回覆,如果你走了。 (我的機器,1940像素高,但它似乎有所不同。) – Oddthinking
的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啓動。所以最後的選擇是使用命令行開關。
@ yonatan-kiron的答案的C#版本和Selenium的示例代碼中的using
聲明。
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--window-size=1300,1000");
using (IWebDriver driver = new ChromeDriver(chromeOptions))
{
...
}
您使用的是什麼語言的綁定?該API提供了設置窗口大小的方法,無論您使用的是哪個驅動程序(除非您遇到ChromeDriver的特定問題,那麼請在此情況下提供更多信息)。這裏有一篇你可能想看的文章。 [如何使用Selenium WebDriver獲取窗口大小,調整窗口大小或最大化](http://yizeng.me/2014/02/23/how-to-get-window-size-resize-or-maximize-window-using- selenium-webdriver /) –