Ich verwende Selenium WebDriver für Python. Ich möchte den Browser mit einer bestimmten Breite und Höhe instanziieren. Bisher kann ich am nächsten kommen:
driver = webdriver.Firefox()
driver.set_window_size(1080,800)
Was funktioniert, aber die Browsergröße nach dem Erstellen festlegt, und ich möchte, dass sie bei der Instanziierung festgelegt wird. Ich vermute, es gibt einen Ansatz in der Art von:
profile = webdriver.FirefoxProfile();
profile.set_preference(foo, 1080)
driver = webdriver.Firefox(profile)
Aber ich weiß nicht, was foo
wäre, und ich kann nicht herausfinden, wo sich die Dokumente befinden.
Frage 1: Gibt es eine Möglichkeit, Breite / Höhe bei der Instanziierung einzustellen?
F2: Wo sind in den Referenzdokumenten alle Schlüssel aufgeführt, die von verwendet werden können profile.set_preference
?
Antworten:
So mache ich es in Python mit Selenium 2.48.0:
from selenium.webdriver import Firefox driver = Firefox() driver.set_window_position(0, 0) driver.set_window_size(1024, 768)
quelle
set_window_size
.set_window_position(0,0)
positioniert das Fenster etwa 10 Pixel links vom Bildschirm störend.Für mich war das einzige, was in Java 7 unter OS X 10.9 funktionierte, Folgendes:
// driver = new RemoteWebDriver(new URL(grid), capability); driver.manage().window().setPosition(new Point(0,0)); driver.manage().window().setSize(new Dimension(1024,768));
Wo
1024
ist die Breite und768
ist die Höhe.quelle
Versuchen Sie so etwas:
IWebDriver _driver = new FirefoxDriver(); _driver.Manage().Window.Position = new Point(0, 0); _driver.Manage().Window.Size = new Size(1024, 768);
Ich bin mir nicht sicher, ob die Größe nach dem Start geändert wird. Vielleicht ist es nicht das, was Sie wollen
quelle
Dies funktioniert sowohl mit
headless
als auch ohne Headless und startet das Fenster mit der angegebenen Größe, anstatt es nachher festzulegen:from selenium.webdriver import Firefox, FirefoxOptions opts = FirefoxOptions() opts.add_argument("--width=2560") opts.add_argument("--height=1440") driver = Firefox(options=opts)
quelle
Wenn Sie Chrom verwenden
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)
Dies führt dazu, dass der Browser auf dem zweiten Monitor ohne störendes Flackern oder Bewegungen auf dem Bildschirm gestartet wird.
quelle
Hier sind die Standardeinstellungen für das Firefox-Profil aus Python Selen 2.31.0. Firefox_profile.py
und geben Sie "about: config" in die Firefox-Adressleiste ein, um alle Einstellungen anzuzeigen
Verweis auf die Einträge in 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", }
quelle
Es ist einfach. Hier ist der vollständige Code.
from selenium import webdriver driver = webdriver.Chrome() driver.get("Your URL") driver.set_window_size(480, 320)
quelle
profile = webdriver.FirefoxProfile() profile.set_preference('browser.window.width',0) profile.set_preference('browser.window.height',0) profile.update_preferences()
Schreiben Sie diesen Code in den Setup-Teil Ihres Testcodes vor der
webdriver.Firefox()
Zeile : .quelle