尝试将safari(驱动程序)下载目录设置到特定位置。
现在它将仅将文件下载到默认的“下载”文件夹。
String currentDirectory = System.getProperty("user.dir");
String downloadFilePath = currentDirectory+"/download/";
已经尝试过:
dc.setCapability("safari.download.dir", downloadFilePath);
dc.setCapability("browser.download.dir", downloadFilePath);
dc.setCapability("safari.options.dataDir", downloadFilePath); // ("safari.options.dataDir" // this part won't work)
safariOptions.setCapability("safari.options.dataDir", downloadFilePath);
safariPrefs.put("download.deafult_directory", downloadFilePath); // this one I am using for chromedriver (chromePrefs)
最佳答案
好了,您可以尝试使用HTTP连接下载文件!这样,您可以确定将其保存到变量中指定的目录中。
大多数语言都有用于执行HTTP请求的API(或库)。例如,要在Java中完成此操作,可以使用URL.openConnection()
String link = linkElement.getAttribute("href");
URL url = new URL(link);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
然后,您可以使用HttpURLConnection.getInputStream()将文件内容写入您的首选位置。
try (InputStream in = httpURLConnection.getInputStream()) {
Files.copy(in, new File("/path/to/file.ext").toPath(),
StandardCopyOption.REPLACE_EXISTING);
}
仅在您使用Cookie的情况下:
您可以将它们添加到HTTP连接。如果在这种情况下,您必须使用保存在cookie上的密码,这将非常有用。
Set<Cookie> cookies = webDriver.manager().getCookies();
String cookieString = "";
for (Cookie cookie : cookies) {
cookieString += cookie.getName() + "=" + cookie.getValue() + ";";
}
httpURLConnection.addRequestProperty("Cookie", cookieString);