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