如何在Python中使用Selenium设置Chrome的窗口大小?

7qhs6swi  于 2023-09-28  发布在  Go
关注(0)|答案(5)|浏览(190)

以下用于调整selenium Chrome窗口大小的代码不起作用:

driver.set_window_size(1920, 1080)
time.sleep(5)
size = driver.get_window_size()
print("Window size: width = {}px, height = {}px.".format(size["width"], size["height"]))

其中输出为:

Window size: width = 1044px, height = 788px

我也试过使用选项来设置驱动程序创建时的窗口大小(以及许多其他事情,请参见下面的评论),但也无法使其工作:

options.add_argument("--window-size=1920,1080")

我正在使用selenium 3.14.0,Chrome驱动程序版本72.0.3626.109,并在后台/无头模式下运行:我确实需要在后台运行我的代码,这意味着它会在后台自动启动。我认为headless和background之间有微妙的区别,headless在启动时与特定用户相关联,background也是headless,但可能与特定用户无关,可能有其他特质-我开始认为这可能是我的问题的一部分。
我想让Chrome驱动程序工作,因为firefox不能在后台运行(我需要),ie是一个痛苦。
我想弄清楚这一点,因为当窗口如此之小时,我看不到需要单击的元素。

xxslljrj

xxslljrj1#

有点不清楚为什么以及你被困在哪里。可能是额外的**.**(如height = {}px.)造成了混乱。也许与-headless参数一起,我可以设置/检索 Chrome 浏览器 * 窗口大小 * 如下:

  • 代码块:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")
options.add_argument("window-size=1400,600")
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe', service_args=["--log-path=./Logs/DubiousDan.log"])
driver.get("http://google.com/")
print ("Headless Chrome Initialized")
print(driver.get_window_size())
driver.set_window_size(1920, 1080)
size = driver.get_window_size()
print("Window size: width = {}px, height = {}px".format(size["width"], size["height"]))
driver.quit()
  • 控制台输出:
Headless Chrome Initialized
{'width': 1400, 'height': 600}
Window size: width = 1920px, height = 1080px

tl; dr

您可以在以下内容中找到一些关于 * 窗口大小 * 的相关讨论:

  • python:Selenium Firefox headless返回不同的结果
  • java:在无头模式下无法最大化Chrome窗口
e0uiprwp

e0uiprwp2#

而不是

options.add_argument("--window-size=1920,1080")

你能试试这个吗。

options.add_argument('window-size=1920x1080');

options.add_argument("--start-maximized")
ovfsdjhp

ovfsdjhp3#

我终于知道问题出在哪里了:运行Windows任务调度程序与选项'运行用户是否登录'只打开一个小浏览器(1024x768),不能调整大小,即使所有伟大的建议在这里提供。
在这里看到解决的相同问题:屏幕分辨率在模式“运行无论用户是否登录”,在windows任务调度程序
因此,不太理想的解决方法是仅在用户登录时运行。

vpfxa7rd

vpfxa7rd4#

您可以在webdriver类中使用set_window_size函数:

driver.set_window_size(width, height)

例如:

driver.set_window_size(800, 600)
0md85ypi

0md85ypi5#

您可以设置Chrome的窗口大小,如下所示。* -window-sizewindow-size也可以工作:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--window-size=1024,768")
driver = webdriver.Chrome(options=options)

并且,您还可以根据文档使用以下代码设置Chrome的窗口大小:

from selenium import webdriver

driver = webdriver.Chrome()
driver.set_window_size(1024, 768)

”我的回答解释得更多。

相关问题