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

时间:2019-03-05 22:40:02

标签: python selenium google-chrome selenium-chromedriver google-chrome-headless

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

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")

我正在使用硒3.14.0,chrome驱动程序版本72.0.3626.109并在后台/无头模式下运行:我确实需要在后台运行我的代码,这意味着它会在后台自动启动。我认为无头和背景之间有细微的差别,无头和特定用户相关,背景也无头,但可能与特定用户无关,并且可能有其他特质-我开始认为这可能成为我的问题的一部分。

我想让chrome驱动程序工作,因为firefox不在后台运行(我需要),也就是说很痛苦。

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

3 个答案:

答案 0 :(得分:0)

代替

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

可以请您尝试一下。

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

OR

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

答案 1 :(得分:0)

有点不清楚为什么以及确切地被困在哪里。像Failed resolution of: Ljava/util/Base64;中那样的 . 可能造成了混乱。也许与height = {}px.参数一起,我可以如下设置/获取 Chrome 浏览器 Window Size

  • 代码块:

    -headless
  • 控制台输出:

    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()
    

答案 2 :(得分:0)

所以我终于弄清楚了问题所在:运行带有“无论用户是否登录”选项的Windows任务计划程序,只会打开一个无法调整大小的小型浏览器(1024x768),即使提供了所有不错的建议在这里。

看到相同的问题已在此处解决:screen resolution in mode "Run whether user is logged on or not", in windows task scheduler

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

感谢您的帮助!