
selenium 启动 chrome 后页面始终为空、地址栏显示 data:,,根本原因是新版 chrome(111+)默认禁用远程调试接口,需显式配置 --remote-allow-origins=* 启动参数。
selenium 启动 chrome 后页面始终为空、地址栏显示 data:,,根本原因是新版 chrome(111+)默认禁用远程调试接口,需显式配置 --remote-allow-origins=* 启动参数。
当使用 Selenium 4.11+ 与 Chrome 111 或更高版本配合时,若未正确配置 Chrome 启动选项,ChromeDriver 将无法建立有效的 DevTools 连接,导致浏览器虽成功启动,但实际未加载任何页面——此时地址栏固定显示 data:,(即空 data URL),driver.get() 调用看似执行却无响应。
根本原因:Chrome 111 起引入了更严格的跨源限制,默认拒绝所有远程调试连接请求。Selenium 依赖该协议控制浏览器,因此必须通过 ChromeOptions 显式启用允许来源。
正确解决方案如下:
-
导入必要类(确保已添加):
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions;
-
设置驱动路径并配置 ChromeOptions:
System.setProperty("webdriver.chrome.driver", "C:\LIOR\Quality Assurance\chromedriver_win32\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--remote-allow-origins=*"); // ✅ 关键修复项 // (可选)提升稳定性与可调试性 options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); options.addArguments("--start-maximized"); WebDriver driver = new ChromeDriver(options); // ✅ 必须传入 options 实例 driver.get("https://prd.canvusapps.com/signup");
⚠️ 重要注意事项:
- --remote-allow-origins=* 不可省略,且必须在 new ChromeDriver(options) 前设置;
- 不要混用旧版 DesiredCapabilities(已弃用),全程使用 ChromeOptions;
- 确保 chromedriver.exe 版本与本地 Chrome 浏览器主版本号严格匹配(如 Chrome 126 → 使用 ChromeDriver 126.x);
- 若运行于 Linux/macOS,请使用正斜杠或双反斜杠路径,并赋予可执行权限(chmod +x chromedriver);
- 生产环境建议将 * 替换为具体域名(如 --remote-allow-origins=https://prd.canvusapps.com)以增强安全性。
✅ 执行后,Chrome 将正常导航至目标 URL,页面内容完整渲染,driver.getPageSource() 和元素查找操作均可正常工作。此配置已成为 Selenium + 新版 Chrome 的标准初始化范式。










