2014-04-30 13 views
25

Używam Selenium WebDriver do automatyzacji i używam Chromedriver.Jak mogę kontrolować rozmiar okna otwartego Chromedriver?

Zauważyłem, że gdy mój sterownik uruchamia się i otwiera przeglądarkę chrome, otwiera przeglądarkę o dziwnym rozmiarze. Próbowałem naprawić, ale na próżno.

Czy ktoś wie, jak mogę to zmienić?

+0

Jakiego wiązania językowego używasz?Interfejs API udostępnia metody ustawiania rozmiaru okien niezależnie od używanego sterownika (chyba że masz konkretne problemy z ChromeDriver, a następnie podaj więcej informacji w tym przypadku). Oto artykuł, który możesz chcieć rzucić okiem. [Jak uzyskać rozmiar okna, zmienić jego rozmiar lub zmaksymalizować okno za pomocą Selenium WebDriver] (http://yizeng.me/2014/02/23/how-to-get-window-size-resize- or-maximize-window-using- selenium-webdriver /) –

Odpowiedz

3

Spróbuj z driver.manage.window.maximize();, aby zmaksymalizować okno.

+0

Dzięki, ale nie chcę pełnego ekranu, ale żeby naprawić rozmiar okna według mojego własnego rozmiaru. Chromedriver z jakiegoś powodu ustala rozmiar okna po otwarciu przeglądarki. –

6

spróbować tej driver.Manage().Window.Size = new Size(width, height);

21

Użyj tego rozmiaru niestandardowego:

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

można zmienić wymiary takie same jak wymagania.

+0

Wygląda na to, że nie działa w wersji bezgłowej Chrome (wersja 60). Jednak odpowiedź @Jonatan Kiron działa – Illidan

0

Jeśli używasz języka Facebook wiążący dla php spróbuj tego:

$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

jest to link do webdriver chrome http://chromedriver.storage.googleapis.com/index.html?path=2.22/ –

0

w Java/Groovy try:

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); 

to otworzy przeglądarkę w pełnym ekranie

0

Jeśli używasz Clojure i https://github.com/semperos/clj-webdriver ty może użyć tego fragmentu, aby zmienić rozmiar przeglądarki.

(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

Użyj Dimension Class do kontrolowania rozmiaru okna.

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

Użyj tego:

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

Tak, to całkowicie nie zostało opublikowane jako odpowiedź wcześniej. –

37

Wiem, że to stary wątek, ale nie z powyższych pracował dla mnie. Używam

chrome = 57.0.2987.133 
chromedriver = 2.27.440174 

I to pracował dla mnie: Wersja

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

Tak, ostatnia zmiana rozmiaru okna jest błędna w chromedriver, mówią, że została naprawiona w wersji 2.28, ale mam również błąd w tej wersji. Kończę również używanie przełączników wiersza poleceń i przekazywanie rozmiaru okna jako argumentów. –

+0

Dzięki! Korzystając z ChromeDriver 2.32 i jest to jedyna opcja, która działa bezgłowego wariantu. C# Windows. driver.Manage(). Window.Size nie działa. –

+0

Zauważam, że ma on maksymalny rozmiar, do którego powraca po cichu, jeśli przejdziesz dalej. (Moja maszyna ma 1940 pikseli wysokości, ale wygląda na to, że jest inna.) – 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) 

Resize chrom jest buggy w najnowszych chromedrivers, to nie intermittanly z tym komunikatem o awarii .

     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) 

I resizeTo za pośrednictwem javascript również nie jest obsługiwany dla chrome started za pośrednictwem selenu webdriver. Ostatnią opcją było użycie przełączników linii poleceń.

2

C# wersja odpowiedzi @ yonatan-kiron oraz oświadczenie Selenium using z ich przykładowego kodu.

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

using (IWebDriver driver = new ChromeDriver(chromeOptions)) 
{ 
    ... 
} 
Powiązane problemy