
ChromeDriver 95+ 版本因安全策略升级默认拒绝远程连接,导致 driver.get() 失效并停留在空白页;需显式配置 --remote-allow-origins=* 启动参数方可正常访问目标 URL。
chromedriver 95+ 版本因安全策略升级默认拒绝远程连接,导致 `driver.get()` 失效并停留在空白页;需显式配置 `--remote-allow-origins=*` 启动参数方可正常访问目标 url。
在使用 Selenium 4.x 与新版 ChromeDriver(v95 及以上)时,许多开发者会遇到这样的典型问题:Chrome 浏览器成功启动,但页面始终为空白,且 driver.get(URL) 不触发任何导航行为,程序看似“卡住”——这并非代码逻辑错误,而是 ChromeDriver 自 v95 起引入的 强制性安全限制:默认禁用非本地上下文的 WebDriver 远程连接(即 remote-allow-origins 检查),以防范潜在的跨域调试攻击。
要解决该问题,必须在初始化 ChromeDriver 前,通过 ChromeOptions 显式启用宽松的源策略:
String URL = "https://www.selenium.dev/documentation/webdriver/waits/";
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*"); // ✅ 关键修复参数
WebDriver driver = new ChromeDriver(options);
driver.get(URL); // 现在可正常加载页面
⚠️ 注意事项:
- --remote-allow-origins=* 仅用于开发/测试环境,切勿在生产或公开服务器中启用,因其会降低浏览器安全性;
- 若需更精细控制,可指定具体域名(如 --remote-allow-origins=https://localhost:8080);
- 确保 ChromeDriver 版本与本地 Chrome 浏览器主版本号严格匹配(例如 Chrome 126 → 使用 chromedriver_126.x);
- Maven 项目中请确认已正确引入 Selenium 4.10+(推荐 4.15+)及对应 WebDriver Manager(如 webdrivermanager)依赖,避免隐式版本冲突。
✅ 补充建议:为提升健壮性,可在 get() 后添加显式等待,确保页面加载完成:
driver.get(URL);
new WebDriverWait(driver, Duration.ofSeconds(10))
.until(ExpectedConditions.titleContains("Waits"));
该方案已验证兼容 Chrome 95–128 及主流 Selenium 4.x 版本,是当前最简洁、可靠的标准解法。










