Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用FirefoxProfile通过Firefox浏览器自动下载?_Java_Selenium_Firefox_Selenium Webdriver_Firefox Profile - Fatal编程技术网

Java 如何使用FirefoxProfile通过Firefox浏览器自动下载?

Java 如何使用FirefoxProfile通过Firefox浏览器自动下载?,java,selenium,firefox,selenium-webdriver,firefox-profile,Java,Selenium,Firefox,Selenium Webdriver,Firefox Profile,我正在使用selenium java,在这里我需要下载pdf文件,我在这里提到了,并给出了答案,但在我的情况下似乎什么都不起作用。 是否由于设置了新的firefox驱动程序实例,即System.setProperty(“webdriver.firefox.bin”,“D:\\FFF\\firefox.exe”)?我被困在这里。但是,当我在MIME对话框中手动单击save file时,它会正确地保存到我的自定义位置,我的下载链接代码也位于另一个java类中,下面的代码位于另一个类中,但我使用的驱动

我正在使用selenium java,在这里我需要下载pdf文件,我在这里提到了,并给出了答案,但在我的情况下似乎什么都不起作用。 是否由于设置了新的firefox驱动程序实例,即
System.setProperty(“webdriver.firefox.bin”,“D:\\FFF\\firefox.exe”)?我被困在这里。但是,当我在MIME对话框中手动单击save file时,它会正确地保存到我的自定义位置,我的下载链接代码也位于另一个java类中,下面的代码位于另一个类中,但我使用的驱动程序与该类中声明的相同,
下面是我的代码

FirefoxProfile profile = new FirefoxProfile();
//Set Location to store files after downloading.
profile.setPreference("browser.download.folderList", 2);
profile.setPreference( "browser.download.manager.showWhenStarting", false );
profile.setPreference("browser.download.dir", "D:\\WebDriverDownloads");
profile.setPreference("pdfjs.disabled", true);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf"); 
System.setProperty("webdriver.firefox.bin", "D:\\FFF\\firefox.exe");
driver = new FirefoxDriver(profile);

以下代码块通过
Java
绑定将
Firefox配置文件配置为
Download
Save
PDF文件:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", "C:\\Utility\\Downloads");
profile.setPreference("browser.download.folderList",2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "text/plain,application/octet-stream,application/pdf,application/x-pdf,application/vnd.pdf");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.helperApps.neverAsk.openFile","text/plain,application/octet-stream,application/pdf,application/x-pdf,application/vnd.pdf");
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.helperApps.neverAsk.openFile", "");
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.closeWhenDone", true);
profile.setPreference("pdfjs.disabled", true);
System.setProperty("webdriver.firefox.bin", "D:\\FFF\\firefox.exe");
WebDriver driver = new FirefoxDriver(profile);

为什么要注释browser.helperApps.neverAsk.saveToDisk
选项,下载的文件类型。如果您在下载文件时不确定chrome中的“签入网络”选项卡orry,my bad,仅其pdf文件,已编辑问题当您单击要下载文件的链接时会发生什么,它会在另一个选项卡中打开吗Yeah..它会在一毫秒内打开一个空白选项卡,然后打开一个MIME对话框,在其中要求“打开”或“保存文件”。您是否可以尝试
application/x-pdf
about:config
中设置此属性后手动尝试它不起作用,另外,我也不知道为什么它会弹出一个新的空白浏览器选项卡一毫秒,并在显示对话框之前立即关闭,这会导致任何问题吗?不,您能获取
新空白浏览器选项卡
显示对话框
的快照吗?你到底想下载哪种类型的文件?好的。我无法获得空白选项卡的屏幕截图,因为它在打开之前只打开了几秒钟。这是一个MIME对话框的截图,签出我的更新答案,然后让我知道,如果这样的话,请考虑共享URL。最初我没有覆盖我的代码中的一个bug的边缘情况。现在也介绍了边缘案例:)谢谢