[英]Firefox Profile unable to automatically download file
I am trying to bypass the firefox download manager window when downloading a pdf file in a selenium test by using firefox profile settings: I am trying to bypass the firefox download manager window when downloading a pdf file in a selenium test by using firefox profile settings:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", "path/to/downloads");
profile.setPreference("browser.download.useDownloadDir", true);
profile.setPreference("browser.helperApps.neverAsk.openFile", "application/x-pdf, application/pdf, application/octet-stream, text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/x-pdf, application/pdf, application/octet-stream, text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
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);
FirefoxOptions options = new FirefoxOptions();
options.setProfile(profile);
WebDriver driver = new FirefoxDriver(options);
driver.get("https://mozilla.github.io/pdf.js/web/viewer.html");
Thread.sleep(3000);
driver.findElement(By.id("download")).click();
Thread.sleep(5000);
I've tried different variations of profile preferences, but nothing seems to be working.我尝试了不同的配置文件偏好变体,但似乎没有任何效果。
It's also important to note that I am seeing the file appear in the downloads folder as some random string with a weird extension, something like this: 5daYs8iE.pdf.part
.还需要注意的是,我看到该文件在下载文件夹中显示为一些带有奇怪扩展名的随机字符串,如下所示: 5daYs8iE.pdf.part
。 If I exit the test without clicking the OK button on the download window then the file disappears, but if I click it, then the file saves and changes its extension to PDF如果我没有点击下载 window 上的 OK 按钮就退出测试,那么文件就会消失,但是如果我点击它,那么文件会保存并将其扩展名更改为 PDF
On org.seleniumhq.selenium:selenium-firefox-driver:3.141.59
在org.seleniumhq.selenium:selenium-firefox-driver:3.141.59
Instead of setting all the preferences you can manualy create a Firefox profile, set manualy all you need (PDF autodownload, etc.) and load the existing profile like this:无需设置所有首选项,您可以手动创建 Firefox 配置文件,手动设置您需要的所有内容(PDF 自动下载等)并像这样加载现有配置文件:
package tyler;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.ProfilesIni;
public class Tyler {
public static void main(String[] args) throws InterruptedException {
FirefoxOptions options = new FirefoxOptions();
ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile selenium_profile = allProfiles.getProfile("selenium_profile");
options.setProfile(selenium_profile);
options.setBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
System.setProperty("webdriver.gecko.driver", "C:\\Users\\pavel.burgr\\Desktop\\webdrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver(options);
driver.manage().window().maximize();
driver.get("https://mozilla.github.io/pdf.js/web/viewer.html");
Thread.sleep(10000);
driver.findElement(By.id("download")).click();
Thread.sleep(10000);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.