问题在于:我在线程中运行了多个案例的selenium测试。在测试期间按下按钮"下载"点击。此按钮调用生成PDF并供其下载的Ajax。它下载到"下载"默认情况下。
我需要将这些下载内容移动到特定位置(每个测试都有一个)并且我不知道该文件的名称。
我试图在测试期间更改downlad目录,但似乎不可能。
我试图打开"下载"选项卡(chrome:// downloads /)并探索它,但似乎不可能,它找不到网页元素
我试图移动(从原点复制和删除)las文件,但是在线程中运行severan测试时,可能会出现问题。
有什么想法吗?
提前致谢
答案 0 :(得分:1)
我最终做的是为每个测试配置不同的下载路径
String rutaDescarga ="C:\\Users\\XXX\\Downloads"+System.currentTimeMillis() +Math.random();
File creaRuta = new File(rutaDescarga);
if(!creaRuta.exists()){
creaRuta.mkdirs();
}
downloadPath = rutaDescarga;
chromePref.put("download.default_directory",rutaDescarga);
options.setExperimentalOptions("prefs", chromePref);`
这样,每个测试用例都有自己的路径,复制文件时没有错误
答案 1 :(得分:0)
您可以指定下载位置。下面的代码可能会帮助您尝试
File file = new File(“ ./ downloads”);
boolean b = false;
if (!file.exists()) {
b = file.mkdirs();
}
FileUtils.cleanDirectory(file);
String downloadFolder = System.getProperty("user.dir")+"/downloads";
if (browser.equalsIgnoreCase("Chrome")) {
HashMap<String, Object> chromePref = new HashMap<>();
chromePref.put("download.default_directory", downloadFolder);
chromePref.put("download.prompt_for_download", "false");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePref);
driver = new ChromeDriver(options);
} else if (browser.equalsIgnoreCase("Firefox")) {
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir",downloadFolder ); // folder
profile.setPreference("pdfjs.disabled", true); // disable the built-in viewer
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.panel.shown", false);
profile.setPreference("browser.helperApps.neverAsksaveToDisk", "application/x-msexcel,application/excel,application/x-excel,application/excel,application/x-excel,application/excel,application/vnd.ms-excel,application/x-excel,application/x-msexcel");
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setCapability(FirefoxDriver.PROFILE, profile);
firefoxOptions.setCapability(FirefoxDriver.MARIONETTE, true);
firefoxOptions.setCapability(CapabilityType.ELEMENT_SCROLL_BEHAVIOR, 0);
driver = new FirefoxDriver(firefoxOptions);
}