Selenium Headless模式使用异常:强制显示空白窗口问题求助
解决Selenium Headless浏览器弹出纯白窗口的方案
检查浏览器驱动与浏览器版本匹配度
哪怕Selenium更到最新,浏览器驱动(比如ChromeDriver、GeckoDriver)必须和本地浏览器主版本完全对齐。比如Chrome 118就得用ChromeDriver 118.x,版本不对很容易搞出各种UI异常。Chrome可以通过chrome://version/看版本,然后去下对应驱动替换就行。加些额外的Headless启动参数
除了常规的--headless=new(Chrome 112以上版本用),试试加这些参数压掉窗口弹出:options.add_argument("--no-sandbox") options.add_argument("--disable-gpu") options.add_argument("--disable-dev-shm-usage") options.add_argument("--window-size=1920x1080") options.add_argument("--hide-scrollbars") options.add_argument("--disable-extensions")注意:要是用的老版Chrome(低于112),把
--headless=new换成--headless=chrome。换个浏览器后端试试
比如切换到Firefox或者Edge的Headless模式,不同浏览器的Headless实现不一样,说不定能绕开这个问题。举个Firefox的配置例子:from selenium.webdriver.firefox.options import Options options = Options() options.add_argument("--headless") driver = webdriver.Firefox(options=options)检查系统级窗口设置
有些系统(比如Linux桌面环境、远程桌面)会强制渲染窗口,哪怕是Headless模式也不例外。Linux下可以在启动脚本前加个环境变量:export DISPLAY=:0.0Windows的话看看有没有开“强制显示所有窗口”这类系统设置,关了试试。
禁用浏览器GPU加速
部分显卡驱动和Headless模式不兼容,强制关掉GPU加速可能解决纯白窗口问题,参数用--disable-gpu,还可以再加个--disable-software-rasterizer增强效果。
内容的提问来源于stack exchange,提问作者gumball
相关产品推荐
相关产品推荐

