Selenium升级ChromeDriver至121后出现InvalidSessionIdException问题求助
解决Chrome 121.0.6167.85 + Selenium 会话30分钟后失效的InvalidSessionIdException问题
确实有不少用户在升级Chrome及对应WebDriver到121.0.6167.85版本后,遇到了长时间运行测试(约30分钟)后触发InvalidSessionIdException的问题,且未主动关闭会话。
解决建议
- 禁用Chrome闲置会话超时特性:Chrome 121新增了闲置会话自动终止机制,可通过启动参数关闭。初始化WebDriver时添加
--disable-features=IdleSessionTimeout参数:from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("--disable-features=IdleSessionTimeout") driver = webdriver.Chrome(options=chrome_options) - 定期维持会话活跃:若无法禁用超时,可在测试流程中每隔25分钟左右执行一次无影响的页面交互,比如执行一段空的JS脚本,避免会话被判定为闲置:
driver.execute_script("/* keep session alive */") - 临时降级版本:如果上述方法无效,可暂时降级Chrome及对应WebDriver到120.x稳定版本,等待官方修复该问题。
关于会话超时机制
Chrome 121版本确实引入了闲置会话自动超时的新特性,默认超时时间为30分钟。当会话处于无交互的闲置状态时,浏览器会自动终止该会话,进而导致Selenium抛出InvalidSessionIdException。目前该特性的官方文档说明较少,属于新版本的隐性功能变更。
内容的提问来源于stack exchange,提问作者Angelotti
相关产品推荐
相关产品推荐

