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()
.