2013-03-13 6 views
46

Utilizzo Selenium WebDriver per Python. Voglio istanziare il browser con una larghezza e altezza specifiche. Finora il più vicino che può ottenere è:Come impostare la larghezza e l'altezza del browser in Selenium WebDriver?

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

Che funziona, ma imposta la dimensione del browser dopo la sua creazione, e lo voglio fissato a esemplificazione. Sto indovinando c'è un approccio lungo le linee di:

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

Ma io non so che cosa sarebbe foo, e non riesco a capire dove la documentazione sono.

Q1: c'è un modo per impostare larghezza/altezza all'istanziazione?

Q2: Dove sono i documenti di riferimento che elencano tutte le chiavi utilizzabili da profile.set_preference?

+5

Perché è una cosa negativa che si ridimensiona dopo essere stato creato? – Arran

+0

Onestamente, non lo so.A rigor di termini è diverso da una finestra che viene aperta con una dimensione specifica (posso ** vedere ** la differenza). Non so se questa differenza sia _materiale_. Visto che questi sono test, vorrei rimuovere il maggior numero possibile di incognite. Se qualcuno può dirmi che non fa differenza, sarei felice. Ma probabilmente avrebbero dovuto conoscere le specifiche del mio test per farlo, e voglio essere in grado di farlo per tutti i test futuri che scrivo. – tom

+2

Concordo con Arran. Non riesco a pensare ad alcun motivo per cui ridimensionare dopo la creazione potrebbe causare problemi. –

risposta

15

provare qualcosa di simile:

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

Non sono sicuro se sarà ridimensionare dopo essere stato lanciato, però, quindi forse non è ciò che si vuole

+0

Non si suppone che sia un pitone –

0

Ecco firefox preferenze profilo di default da Python selenio 2.31. 0 firefox_profile.py

e digitare "about: config" in firefox barra degli indirizzi per visualizzare tutte prefs

riferimento alle voci di: conf IG: http://kb.mozillazine.org/About:config_entries

DEFAULT_PREFERENCES = { 
    "app.update.auto": "false", 
    "app.update.enabled": "false", 
    "browser.download.manager.showWhenStarting": "false", 
    "browser.EULA.override": "true", 
    "browser.EULA.3.accepted": "true", 
    "browser.link.open_external": "2", 
    "browser.link.open_newwindow": "2", 
    "browser.offline": "false", 
    "browser.safebrowsing.enabled": "false", 
    "browser.search.update": "false", 
    "extensions.blocklist.enabled": "false", 
    "browser.sessionstore.resume_from_crash": "false", 
    "browser.shell.checkDefaultBrowser": "false", 
    "browser.tabs.warnOnClose": "false", 
    "browser.tabs.warnOnOpen": "false", 
    "browser.startup.page": "0", 
    "browser.safebrowsing.malware.enabled": "false", 
    "startup.homepage_welcome_url": "\"about:blank\"", 
    "devtools.errorconsole.enabled": "true", 
    "dom.disable_open_during_load": "false", 
    "extensions.autoDisableScopes" : 10, 
    "extensions.logging.enabled": "true", 
    "extensions.update.enabled": "false", 
    "extensions.update.notifyUser": "false", 
    "network.manage-offline-status": "false", 
    "network.http.max-connections-per-server": "10", 
    "network.http.phishy-userpass-length": "255", 
    "offline-apps.allow_by_default": "true", 
    "prompts.tab_modal.enabled": "false", 
    "security.fileuri.origin_policy": "3", 
    "security.fileuri.strict_origin_policy": "false", 
    "security.warn_entering_secure": "false", 
    "security.warn_entering_secure.show_once": "false", 
    "security.warn_entering_weak": "false", 
    "security.warn_entering_weak.show_once": "false", 
    "security.warn_leaving_secure": "false", 
    "security.warn_leaving_secure.show_once": "false", 
    "security.warn_submit_insecure": "false", 
    "security.warn_viewing_mixed": "false", 
    "security.warn_viewing_mixed.show_once": "false", 
    "signon.rememberSignons": "false", 
    "toolkit.networkmanager.disable": "true", 
    "toolkit.telemetry.enabled": "false", 
    "toolkit.telemetry.prompted": "2", 
    "toolkit.telemetry.rejected": "true", 
    "javascript.options.showInConsole": "true", 
    "browser.dom.window.dump.enabled": "true", 
    "webdriver_accept_untrusted_certs": "true", 
    "webdriver_enable_native_events": "true", 
    "webdriver_assume_untrusted_issuer": "true", 
    "dom.max_script_run_time": "30", 
    } 
+0

Grazie. Non vedo le impostazioni della dimensione del browser, ma è utile avere l'elenco e il collegamento lo stesso. – tom

0
profile = webdriver.FirefoxProfile() 
profile.set_preference('browser.window.width',0) 
profile.set_preference('browser.window.height',0) 
profile.update_preferences() 

scrivere questo codice nella parte configurazione del codice di prova, prima della: linea di webdriver.Firefox().

+0

Non funziona per Java 7 su OS X 10.9 –

+0

La domanda riguarda l'impostazione della dimensione iniziale di windows usando ** python ** .... Comunque, questo non funziona usando python, almeno usando selenio 2.46.0 e Firefox 38.0.5 –

28

Per me, l'unica cosa che ha funzionato in Java 7 su OS X 10.9 è stato questo:

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

Dove 1024 è la larghezza, e 768 è l'altezza.

20

Ecco come lo faccio in Python con selenio 2.48.0:

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

Se si utilizza 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) 

Questo si tradurrà nel browser avvio sul secondo monitor senza qualsiasi sfarfallio fastidioso o movimenti sullo schermo.

1

È facile. Ecco il codice completo.

from selenium import webdriver 
driver = webdriver.Chrome() 
driver.get("Your URL") 
driver.set_window_size(480, 320) 

Assicurarsi conducente Chrome è nel vostro percorso di sistema.

Problemi correlati