如何使用WebDriver(Python)将Chrome浏览器窗口最大化

96

是否有一种方法可以使用Python Selenium WebDriver最大化Chrome浏览器窗口?

注意:我正在使用Chrome Driver 23.0,对此的任何解决方案将不胜感激!

10个回答

131
你可以使用ChromeOptions并设置合适的参数:
options = ChromeOptions()
options.add_argument("--start-maximized")
driver = ChromeDriver(options)

1
对我不起作用 - 窗口快照显示尺寸仅为800x600。 - Nam G VU
2
@NamGVU 在执行测试时,请检查实际屏幕分辨率 - 最大尺寸是分辨率的大小。我曾经遇到过这个问题,因为测试是由作为服务执行的进程运行的。这导致进程在 Session 0 中运行,而该会话在屏幕分辨率方面具有有限的功能。在非服务中运行测试可以解决这个问题。 - Janek Królikowski
18
现在是2017年12月15日。 driver.fullscreen_window() 能够正常运行。 - Sraw
9
“driver.maximize_window()”是一个适用于Python中的Selenium Chrome驱动程序的更加便捷的函数,可实现窗口最大化。 - Avraham Zhurba
只是想补充一下,在我的情况下,添加 --window-size 和 --start-maximized 参数会导致 --start-maximized 失效。当我移除了 --window-size 参数后,窗口现在可以最大化启动了。 - undefined
显示剩余2条评论

63

除了以下方法,别的都没用:

driver.set_window_size(1024, 600)
driver.maximize_window()

我是通过检查 selenium/webdriver/remote/webdriver.py 文件找到这个的。我从未找到过任何有用的文档,但阅读代码在某种程度上是有效的。


2
这个答案比其他的更好,因为它支持所有浏览器而不仅仅是Chrome。 - Dror
8
无需先设置窗口大小。 - Nouman
对我来说,maximize_window 没有任何效果。如果不执行 set_window_size,窗口大小将保持在 800x600,而在调用 maximize_window 之前执行 set_window_size(1920, 1080),或者在不调用 maximize_window 的情况下执行 set_window_size(1920, 1080),都会使窗口大小变为 1920x1080。使用 fullscreen_window 会导致我的代码挂起。我正在使用带有 options.add_argument("--headless") 的 Chrome。 - user3064538

47

适用于 MAC 或 Linux 操作系统:

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--kiosk");
driver = new ChromeDriver(chromeOptions);

对于Windows操作系统:

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
driver = new ChromeDriver(chromeOptions);

12
问题是针对Python的。 - Zoran Pavlovic
4
在Mac上,只有kiosk适用于我。谢谢。 - n1c9
1
请注意,一旦使用了“--kiosk”模式,尝试更改窗口大小将会导致驱动程序崩溃,例如(python):opts = webdriver.ChromeOptions(); opts.add_argument('--kiosk'); driver = ChromeDriver(chrome_options=opts); driver.set_window_size(800, 600)。全屏或窗口化都不例外。 - hoefling

46

基于Janek的回答,这对我有用(Linux):

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")

driver = webdriver.Chrome(chrome_options=options)

一开始在Linux上这个方法对我没用,但是通过sudo apt install chromium-chromedriver更新了Chrome驱动程序后就可以用了。 - Garrett
1
webdriver.Chrome(options=options) - Taher A. Ghaleb

16

试试这个:

driver.manage().window().maximize();

2
我正在使用driver.window_maximize(),但它仅适用于非Chrome浏览器。 - Naveen Subramani
3
属性错误:'WebDriver'对象没有'manage'属性。 - code-8
是的,这个答案有点老了。 - ndtreviv

8
这对我来说很有效,在使用Python的Mac OS Sierra上,
options = webdriver.ChromeOptions()
options.add_argument("--kiosk")
driver = webdriver.Chrome(chrome_options=options)

7
我会做以下事情:
from selenium import webdriver
browser = webdriver.Chrome('C:\chromedriver.exe')
browser.maximize_window()

5

尝试这个,已在Windows平台上测试,运行良好:

from selenium import webdriver
browser = webdriver.Chrome('C:\\Users\\yeivic\\Downloads\\chromedriver')
browser.fullscreen_window()
browser.get('http://google.com/')

4

尝试

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-fullscreen");

虽然这段代码可能回答了问题,但提供有关它如何以及/或为什么解决问题的附加上下文将改善答案的长期价值。 - Donald Duck
2
问题是关于Python编程的。 - robertspierre

3

这对我来说可行

driver.maximize_window()
driver.get(url)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接