Selenium 4是否兼容Chrome 95?地理定位模拟失效问题咨询
问题原因
核心问题是当前使用的Selenium 4版本内置的CDP(Chrome DevTools Protocol)实现与Chrome 95版本不兼容:
- Chrome 95对应的协议版本是CDP v95,你当前使用的Selenium 4版本最高仅内置支持到CDP v91,因此控制台会输出降级使用v91版本的提示
Emulation.setGeolocationOverride接口在CDP v91到v95的迭代中存在调整,旧版本协议的调用逻辑无法在高版本Chrome上生效,最终导致地理定位模拟失效。
解决方案
可任选以下一种方案修复:
- 方案1:升级Selenium版本到4.1.0及以上
Selenium 4.1.0正式加入了Chrome 95的CDP版本支持,直接升级项目中的Selenium依赖即可,无需修改现有模拟定位的业务代码。 - 方案2:降级Chrome浏览器到91.x稳定版
如果暂时无法升级Selenium依赖,可以将Chrome浏览器版本回退到91.x的稳定版本,和当前Selenium内置的CDP版本对齐,即可正常触发模拟定位。 - 方案3:补充定位权限配置(可选适配)
部分场景下即使版本对齐,也可能因为Chrome默认拦截页面定位权限导致模拟不生效,可在初始化ChromeDriver时添加权限配置:ChromeOptions options = new ChromeOptions(); Map<String, Object> prefs = new HashMap<>(); // 1代表允许地理定位权限,2代表拒绝 prefs.put("profile.default_content_setting_values.geolocation", 1); options.setExperimentalOption("prefs", prefs); ChromeDriver driver = new ChromeDriver(options);
内容的提问来源于stack exchange,提问作者MounaG
相关产品推荐
相关产品推荐

