You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法访问Chrome设置:获取源码遇MalformedURLException问题求助

解决java.net.MalformedURLException: unknown protocol: chrome异常

问题原因

Java标准库的URL类仅支持http、https、ftp等通用网络协议,chrome://是Chrome浏览器的内部协议,不在其默认支持范围内,直接用URL类访问该协议地址会抛出协议不识别的异常。而且你完全没必要用这种方式获取页面源码——Selenium本身就提供了获取当前页面源码的API。

另外你的代码存在一处配置错误:设置ChromeDriver时误用了Firefox驱动的系统属性webdriver.gecko.driver,Chrome对应的属性应该是webdriver.chrome.driver。

修正后的代码

System.setProperty("webdriver.chrome.driver", "./driver/chromedriver.exe");

WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();

driver.get("chrome://settings/passwords?search=contra");

// 直接使用Selenium提供的API获取页面源码
String sourceCode = driver.getPageSource();
System.out.println(sourceCode);

// 使用完毕后关闭驱动
driver.quit();

额外注意事项

  • Chrome的密码设置页面属于浏览器内部安全页面,保存的密码不会直接暴露在页面源码中(出于安全保护),如果你的目标是获取浏览器存储的密码,需要通过读取Chrome密码存储文件并解密的方式实现,这涉及到系统权限和加密算法处理。
  • 操作内部页面时建议添加显式等待,确保页面加载完成后再获取源码:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.tagName("body")));

内容的提问来源于stack exchange,提问作者Shreker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:01:19