selenium 谷歌浏览器实际窗口 小于屏幕分辨率

selenium 全屏模式谷歌浏览器 得到的实际窗口 小于屏幕分辨率

谷歌版本114.0.5735.199 ,电脑屏幕分辨率1920*1280,浏览器缩放比例100%

我试验了一下设置窗口大小以及实际窗口大小

实验:
driver.set_window_size(800, 600)
window_size = self.driver.get_window_size()
print("窗口大小:", window_size)
结果:{'width': 800, 'height': 600}
driver.set_window_size(1000, 800)
window_size = self.driver.get_window_size()
print("窗口大小:", window_size)
结果:{'width': 1000, 'height': 738}
driver.set_window_size(1920, 1080)
window_size = self.driver.get_window_size()
print("窗口大小:", window_size)
结果:{'width': 1298, 'height': 738}

这个结果是为什么

这个结果是因为浏览器在全屏模式下,会占用一定的屏幕空间用于显示浏览器的界面元素,比如地址栏、标签栏等。所以即使设置了窗口大小为屏幕分辨率,实际窗口大小也会小于屏幕分辨率。此外,浏览器的缩放比例也会影响窗口大小的实际显示结果。

  • 你可以参考下这篇文章:selenium 谷歌 火狐 浏览器设置参数
  • 除此之外, 这篇博客: selenium与谷歌无头浏览器的应用中的 5.谷歌无头浏览器 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    # 实例化Options对象
    chrome_options = Options()
    
    # 增加一个参数, 告诉浏览器是无头浏览器
    chrome_options.add_argument('--headless')
    
    # 增加一个参数, 告诉浏览器不需要使用GPU渲染
    chrome_options.add_argument('--disable-gpu')
    
    # 驱动路径, 谷歌的驱动存放路径
    path = r'driverpath'
    
    # 实例化浏览器对象
    browser = webdriver.Chrome(executable_path=path, options=chrome_options)
    
    # 打开指定的页面
    browser.get('https://www.baidu.com')
    
    # 打印访问页面的源码
    print(browser.page_source)
    
    # 将页面源码写入到文件当中
    with open('bai_du.html', 'w', encoding='utf-8') as f:
        f.write(browser.page_source)