92 votes

Comment définir la largeur et la hauteur du navigateur dans Selenium WebDriver ?

J'utilise Selenium WebDriver pour Python. Je veux instancier le navigateur avec une largeur et une hauteur spécifiques. Jusqu'à présent, la solution la plus proche que j'ai pu obtenir est la suivante :

driver = webdriver.Firefox()
driver.set_window_size(1080,800)

Ce qui fonctionne, mais définit la taille du navigateur après sa création, alors que je veux qu'elle soit définie à l'instanciation. Je suppose qu'il existe une approche du type :

profile = webdriver.FirefoxProfile();
profile.set_preference(foo, 1080)
driver = webdriver.Firefox(profile)

Mais je ne sais pas ce que foo et je n'arrive pas à trouver où se trouve la documentation.

Q1 : Y a-t-il un moyen de définir la largeur et la hauteur à l'instanciation ?

Q2 : Où se trouvent les documents de référence énumérant toutes les clés utilisables par profile.set_preference ?

49voto

sirex Points 116

Voici comment je le fais en Python avec Selenium 2.48.0 :

from selenium.webdriver import Firefox
driver = Firefox()
driver.set_window_position(0, 0)
driver.set_window_size(1024, 768)

43voto

Steve HHH Points 3088

Pour moi, la seule chose qui fonctionnait dans Java 7 sous OS X 10.9 était la suivante :

// driver = new RemoteWebDriver(new URL(grid), capability);
driver.manage().window().setPosition(new Point(0,0));
driver.manage().window().setSize(new Dimension(1024,768));

1024 est la largeur, et 768 est la hauteur.

41voto

tsorn Points 633

Voici une solution qui fonctionne à la fois avec le mode headless et le mode non-headless et qui démarre la fenêtre avec la taille spécifiée au lieu de la définir après coup :

Chrome :

from selenium.webdriver import Chrome, ChromeOptions

opts = ChromeOptions()
opts.add_argument("--window-size=2560,1440")

driver = Chrome(options=opts)

Firefox :

from selenium.webdriver import Firefox, FirefoxOptions

opts = FirefoxOptions()
opts.add_argument("--width=2560")
opts.add_argument("--height=1440")

driver = Firefox(options=opts)

19voto

RoneRackal Points 1218

Essayez quelque chose comme ça :

IWebDriver _driver = new FirefoxDriver();
_driver.Manage().Window.Position = new Point(0, 0);
_driver.Manage().Window.Size = new Size(1024, 768);

Je ne suis pas sûr qu'il soit redimensionné après son lancement, donc ce n'est peut-être pas ce que vous voulez.

13voto

mrk Points 23

Si vous utilisez chrome

 chrome_options = Options()
 chrome_options.add_argument("--start-maximized");
 chrome_options.add_argument("--window-position=1367,0");
 if mobile_emulation :
     chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)

  self.driver = webdriver.Chrome('/path/to/chromedriver', 
                                  chrome_options = chrome_options)

Ainsi, le navigateur démarrera sur le deuxième moniteur sans scintillement ni mouvements gênants à l'écran.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X