tag remote name functions chrome python selenium selenium-webdriver screen-resolution

python - remote - ¿Cómo configuro el ancho y alto del navegador en Selenium WebDriver?



tag name selenium (7)

Estoy usando Selenium WebDriver para Python. Quiero crear una instancia del navegador con un ancho y alto específicos. Hasta ahora, lo más cerca que puedo estar es:

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

Lo cual funciona, pero establece el tamaño del navegador después de su creación, y quiero que se configure en instanciación. Supongo que hay un enfoque similar a:

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

Pero no sé qué sería foo , y no puedo entender dónde están los documentos.

Q1: ¿hay alguna manera de establecer el ancho / alto en la creación de instancias?

Q2: ¿Dónde están los documentos de referencia que enumeran todas las claves utilizables por profile.set_preference ?


Aquí está el perfil predeterminado de Firefox prefs de python selenium 2.31.0 firefox_profile.py

y escribe "about: config" en la barra de direcciones de Firefox para ver todas las preferencias

referencia a las entradas en about: config: 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", }


Así es como lo hago en Python con Selenium 2.48.0:

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


Es fácil. Aquí está el código completo.

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

Asegúrese de que el controlador de Chrome esté en la ruta de su sistema.


Para mí, lo único que funcionaba en Java 7 en OS X 10.9 era esto:

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

Donde 1024 es el ancho y 768 es la altura.


Pruebe algo como esto:

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

Sin embargo, no estoy seguro de si cambiará el tamaño después de ser lanzado, así que tal vez no sea lo que quieres


Si estás usando cromo

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)

Esto dará lugar a que el navegador se inicie en el segundo monitor sin parpadeos ni movimientos molestos en la pantalla.


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

escriba este código en la parte de configuración de su código de prueba, antes de la línea: webdriver.Firefox() .