在application.properties配置下载目录后无法启动Chrome浏览器实例
问题:添加下载目录配置后ChromeDriver无法启动
我原本通过application.properties文件配置ChromeDriver的Capabilities可以正常运行,但添加"download.default_directory": "${dir.downloads}"配置项后,ChromeDriver无法启动。
配置代码
dir.currentdirectory= ${expr:java.lang.System.getProperty("user.dir")} dir.screenshots = ${dir.currentdirectory}\resources\screenshots dir.downloads = ${dir.currentdirectory}\resources\downloads chrome.additional.capabilities={"browserName":"chrome","goog:chromeOptions": {"args": ["start-maximized", "--disable-popup-blocking", "disable-infobars", "--disable-extensions"], "extensions": [], "prefs": {"download.directory_upgrade": "true", "download.default_directory": "${dir.downloads}", "download.prompt_for_download": "false", "safebrowsing.enabled":"true"}}}
调试代码
我通过以下代码获取配置字符串,显示值看似正确,但仍无法定位驱动启动失败的原因:
String myString = getBundle().getString("chrome.additional.capabilities"); System.out.println("=============="+myString);
问题分析与解决方案
- 变量替换时机问题:JSON结构内的
${dir.downloads}可能未被正确替换为实际路径。ChromeDriver接收到的是未解析的变量字符串,而非合法的目录路径,导致启动失败。需要确保配置加载时,变量替换在JSON解析之前完成。 - 路径转义问题:Windows系统下的路径反斜杠
\在JSON中属于转义字符,未转义的话会导致路径解析错误。可以将路径中的\替换为\\,或者直接使用正斜杠/(ChromeDriver在Windows环境下兼容正斜杠路径)。修改后的路径配置示例:dir.downloads = ${dir.currentdirectory}/resources/downloads - JSON合法性验证:确认最终输出的
chrome.additional.capabilities是完全合法的JSON,其中download.default_directory对应的值应为实际的本地目录路径,而非变量占位符。
内容的提问来源于stack exchange,提问作者Sri Siva batchu
相关产品推荐
相关产品推荐

