当前位置: 首页 > 知识库问答 >
问题:

如何在Selenium Chrome Python中设置窗口大小

岑畅
2023-03-14

以下用于调整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,铬驱动程序版本72.0.3626.109并在后台/无头模式下运行:我实际上需要在后台运行我的代码,这意味着它会在后台自动启动。我认为无头和背景有细微的区别,无头和背景在启动时与特定用户相关,背景也是无头,但可能与特定用户无关,可能有其他特质——我开始认为这可能是我问题的一部分。

我想让chrome驱动工作,因为火狐不运行在后台(我需要),和ie是一个痛苦。

我想弄明白这一点,因为当窗口太小时,我看不到需要单击的元素。

共有3个答案

太叔乐家
2023-03-14

所以我终于明白了问题所在:运行Windows task scheduler并选择“无论用户是否登录都运行”只会打开一个无法调整大小的小浏览器(1024x768),即使这里提供了所有很好的建议。

请参阅此处解决的相同问题:windows任务计划程序中“无论用户是否登录都运行”模式下的屏幕分辨率

因此,不太理想的解决方案是仅在用户登录时运行。

谢谢你所有的帮助!

酆俊远
2023-03-14

而不是

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

你能试试这个吗。

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

或者

options.add_argument("--start-maximized")
施琦
2023-03-14

有点不清楚为什么你会被困在哪里。可能是额外的 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
    

    您可以在以下网站上找到一些关于窗口大小的相关讨论:

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

  •  类似资料:
    • 问题内容: 由于某些原因,当我在工作中运行测试时,浏览器会最大化,但是当我在家运行测试时,它只会打开大约50%宽度的浏览器窗口。这会导致向下滚动等方面的差异,因此理想情况下,我希望在运行测试的每台计算机上,以相同大小打开浏览器窗口。最好的方法是什么?(我找到了其他语言的一些答案,但无法将它们改编成JavaScript) 新增中 什么也不做(显然,Chrome不支持)。 问题答案: 您可以通过运行以

    • 问题内容: 我有一个3d渲染程序,该程序根据鼠标在屏幕上的位置围绕观察者旋转世界。这条线定义了地球旋转的弧度量 其中xy [0]是屏幕中心的x坐标 这意味着观察者视野的旋转量受到鼠标可以移动的距离的限制。如果我能使鼠标回到屏幕中央,则可以解决此问题。有任何想法吗? 问题答案: 好消息是有一种方法可以做到。 中间的消息是,它没有很好的记录。 坏消息是它仅在某些平台上有效。 另一个中间消息是,您至少可

    • 我正在尝试为KendoDropDownList设置下拉窗口的宽度。使用以下代码: 下拉列表显示并且是KendoDropDownList。所以我知道调用var ddl=$(“#dropdownlist”)。kendoDropDownList()正在工作。但是,我在调用kendoDDL时遇到一个异常。列表宽度(400)。 0x800a138f-JavaScript运行时错误:无法获取未定义或空引用的属

    • 问题内容: 我将GhostDriver用作基于Java的项目中的WebDriver实现。我想拍摄页面快照。默认页面大小有点尴尬,因此我想控制快照的页面大小。但是,我找不到Google提供的任何示例。那么,有人可以告诉我如何吗?非常感谢你。 问题答案: 你尝试过的方法吗?这是文档。

    • 运行新页时,必须使用函数指定视口的大小: