我是用我自己的代码启动驱动程序,因此使用下面的代码来设置默认下载目录
DesiredCapabilities caps = DesiredCapabilities.chrome();
ChromeOptions co = new ChromeOptions();
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("download.default_directory", System.getProperty("user.dir")+"\\downloads\\); -------------Dynamic Path
co.setExperimentalOption("prefs", chromePrefs);
capabilities.merge(co);
WebDriver driver = new ChromeDriver(caps);
现在我们的组织已经提供了一个使用他们内置驱动程序的内部框架。设置功能的唯一方法是通过JSON配置文件。
{
"capabilities": {
"browserName": "chrome",
"browserVersion": "81",
"chromeOptions": {
"args": [
"--headless"
"--start-maximized"
]
}
"prefs": {
"profile.default_content_settings.popups": 0,
"download.default_directory": "C:\Users\workspace\project\downloads\" -------------Path is Static
},
}
}
硬编码下载路径,并在我运行的每台机器上手动更改。有没有办法让这个路径像上面一样动态?
1条答案
按热度按时间j2cgzkjk1#
我在尝试将相对路径传递给我的firefox. opions时遇到了类似的问题。由于它似乎只接受绝对路径,我选择了一个解决方法:
我将相对路径转换为绝对路径,然后使用Firefox Options将其传递给浏览器首选项:
稍后:
现在来谈谈你的问题:将json-file中的路径设置为相对路径,例如“./downloads”,然后编写代码以在内部获取绝对路径,就像上面一样,然后将选项传递给chrome首选项。
如果你交付了你的测试软件,那么在你的项目中似乎总是有一个下载目录,所以应该总是能找到它。