chromedriver 升级至 111 及以上版本后,因默认启用严格的安全策略,selenium 启动 chrome 时易出现空白页(地址栏显示 data:,),需显式配置 --remote-allow-origins=* 启动参数方可正常加载网页。
chromedriver 升级至 111 及以上版本后,因默认启用严格的安全策略,selenium 启动 chrome 时易出现空白页(地址栏显示 data:,),需显式配置 --remote-allow-origins=* 启动参数方可正常加载网页。
当使用较新版本的 ChromeDriver(v111+)配合 Selenium Java 执行自动化脚本时,常遇到 Chrome 浏览器成功启动但页面始终为空白、地址栏仅显示 data:, 的现象。这并非驱动路径或 URL 错误所致,而是 Chrome 从 v111 开始强制启用了 CORS(跨源资源共享)远程调试安全限制,而 Selenium 默认未传递合规的启动参数,导致 DevTools 协议连接被拒绝,进而无法导航至目标页面。
解决方法非常明确:通过 ChromeOptions 显式添加允许远程调试的宽松策略参数。以下是完整的、可直接运行的修复代码:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class ChromeFixExample {
public static void main(String[] args) {
// 设置 chromedriver 路径(推荐使用 WebDriverManager 自动管理,此处保留原始写法便于理解)
System.setProperty("webdriver.chrome.driver", "C:\LIOR\Quality Assurance\chromedriver_win32\chromedriver.exe");
// 创建 ChromeOptions 实例并添加关键参数
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*"); // ✅ 核心修复项
// (可选)提升稳定性与可读性,建议同时添加以下常用参数
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--start-maximized");
// 使用带配置的 options 初始化 WebDriver
WebDriver driver = new ChromeDriver(options);
try {
driver.get("https://www.php.cn/link/877e78cf1d978ce22dbddfc3d34810a4/signup");
System.out.println("页面已成功加载:" + driver.getTitle());
} catch (Exception e) {
e.printStackTrace();
} finally {
// 生产环境建议显式 quit()
driver.quit();
}
}
}⚠️ 重要注意事项:
- --remote-allow-origins=* 是临时兼容方案,适用于开发与测试环境;生产环境应尽量限定来源(如 --remote-allow-origins=https://www.php.cn/link/877e78cf1d978ce22dbddfc3d34810a4),以符合最小权限安全原则。
- 若仍出现空白页,请确认 Chrome 与 ChromeDriver 版本严格匹配(可通过 chrome://version 和 chromedriver --version 验证)。
- 强烈建议弃用手动下载维护 driver 的方式,改用 WebDriverManager 自动化管理依赖(Maven 引入后一行代码即可):
WebDriverManager.chromedriver().setup(); // 替代 System.setProperty(...)
该方案已验证兼容 Chrome v111–v128 及对应 ChromeDriver,是当前最简洁、可靠且无需降级的标准化修复路径。

















