Chrome 110下Python Selenium无头模式下载及窗口尺寸问题
Chrome 110+ 无头模式下任务计划启动时窗口尺寸参数失效的解决办法
问题背景
已将Chrome更新至110.0.5481.104,替换--headless为--headless=new解决了下载异常问题,但--window-size=1920,1080和--start-maximized参数仅在任务计划程序未登录启动批处理时不生效,导致页面元素无法点击,手动启动脚本则正常。
解决方案
1. 强制锁定无头模式下的窗口与视口尺寸
无头新模式下--start-maximized参数可能被忽略,直接用以下参数组合强制固定尺寸,避免环境差异影响:
from selenium import webdriver options = webdriver.ChromeOptions() # 替换旧无头参数 options.add_argument("--headless=new") # 强制窗口尺寸 options.add_argument("--window-size=1920,1080") # 明确设置视口大小(关键,无头模式下需单独指定) options.add_argument("--viewport-size=1920,1080") # 禁用可能干扰尺寸的UI特性 options.add_argument("--disable-features=TranslateUI") options.add_argument("--force-device-scale-factor=1") driver = webdriver.Chrome(options=options)
2. 调整任务计划程序的运行配置
未登录时任务的运行环境和用户桌面会话不同,需调整权限和运行模式:
- 打开任务计划程序,找到目标任务,右键进入属性
- 「常规」选项卡:勾选「不管用户是否登录都要运行」,同时勾选「使用最高权限运行」
- 「设置」选项卡:取消勾选「如果计算机使用电池运行,则停止任务」(台式机可忽略)
- 「操作」选项卡:确认「起始于」为你的脚本所在目录,避免相对路径错误
3. 明确指定Chrome与ChromeDriver路径
任务计划的环境变量可能和用户登录时不一致,写死路径避免版本或路径错误:
- 批处理文件中指定Chrome路径:
@echo off set "CHROME_PATH=C:\Program Files\Google\Chrome\Application\chrome.exe" set "PATH=%CHROME_PATH%;%PATH%" python your_script.py
- Python代码中指定ChromeDriver路径:
from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service(executable_path=r"C:\your\path\to\chromedriver.exe") options = webdriver.ChromeOptions() # 其他参数设置 driver = webdriver.Chrome(service=service, options=options)
4. 临时添加无沙箱参数(测试用)
未登录会话下可能触发沙箱限制,临时添加--no-sandbox参数测试(注意:生产环境慎用,有安全风险):
options.add_argument("--no-sandbox")
总结
优先尝试强制窗口视口尺寸和调整任务计划权限,这两个是解决此类环境差异问题最有效的方向。如果仍有问题,可检查任务计划的日志输出,确认是否有路径或权限相关的报错。
内容的提问来源于stack exchange,提问作者visual2k
相关产品推荐
相关产品推荐

