我尝试设置所有可能的首选项,以避免在使用selenium下载文件时打开并保存文件对话框。
它适用于文本文件,但不适用于PDF文件
以下是首选项设置:
String downloadPath = <some random path>;
String mimetypes = "application/vnd.pdf,application/vnd.adobe.xfdf,text/csv,application/x-msexcel,application/excel,application/pdf,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml";
String url = "http://only-testing-blog.blogspot.in/2014/05/login.html";
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.panel.shown", false);
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.dir", downloadPath);
profile.setPreference("browser.helperApps.neverAsk.openFile", mimetypes);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", mimetypes);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.closeWhenDone", false);
FirefoxDriver driver = new FirefoxDriver(profile);
driver.get(url);
driver.findElement(By.xpath("//a[contains(.,'Download PDF File')]")).click();
使用 Firefox 46 2.53.0 selenium version
请帮助我使其适用于PDF,Excel和Word文件
谢谢!
答案 0 :(得分:0)
我发现的一个解决方案是使用ProfileIni类。它允许您加载预制的firefox配置文件。您使用如下所示
private ProfilesIni init = new ProfilesIni();
private FirefoxProfile profile = init.getProfile("QA");
private WebDriver driver = new WebDriver(profile);
然后,您可以直接在配置文件中设置所有这些首选项,并将设置设置为跳过下载对话框并自动保存到您想要的目标文件夹,并保留每个需要下载内容的测试用例的设置< / p>