如何在Selenium WebDriver中设置浏览器的宽度和高度?

我正在使用Selenium WebDriver for Python。 我想用特定的宽度和高度实例化浏览器。 到目前为止,我能得到的最接近的是:

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

哪些工作,但创build后设置浏览器的大小,我希望它在实例化设置。 我猜测这里有一个方法:

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

但是我不知道foo会是什么,我不知道文档在哪里。

问:有没有办法在实例化时设置宽度/高度?

Q2:参考文档在哪里列出了profile.set_preference可用的所有密钥?

对我来说,在OS X 10.9上的Java 7中唯一的工作是这样的:

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

1024是宽度, 768是高度。

以下是我如何在Python 2.16.0中使用它:

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

尝试这样的事情:

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

不知道它是否会启动后调整,所以也许这不是你想要的

如果你正在使用铬

  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) 

这将导致浏览器在第二台显示器上启动,而不会在屏幕上出现任何恼人的闪烁或移动。

这里是来自python selenium 2.31.0 firefox_profile.py的firefox profile默认首选项

并在Firefox地址栏中input“about:config”来查看所有的设置

参考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", } 
 profile = webdriver.FirefoxProfile() profile.set_preference('browser.window.width',0) profile.set_preference('browser.window.height',0) profile.update_preferences() 

webdriver.Firefox()之前,将这段代码写入testing代码的设置部分。

这很容易。 这里是完整的代码。

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

确保chrome驱动程序在您的系统path中。