我正在尝试使用我在Stackoverflow上找到的其他主题中的代码,不要询问用户应该采取哪些操作来下载PDF文件。
我正在使用的代码是:
FirefoxProfile specialProfile = new FirefoxProfile();
specialProfile.SetPreference("browser.helperApps.alwaysAsk.force", false);
specialProfile.SetPreference("browser.download.manager.showWhenStarting", false);
specialProfile.SetPreference("browser.download.folderList", 2);
specialProfile.SetPreference("browser.download.dir", Setup.DownloadContractPath);
specialProfile.SetPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
specialProfile.SetPreference("browser.download.useDownloadDir", true);
specialProfile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
return new FirefoxDriver(specialProfile);
但似乎它在我的情况下不起作用。我正在下载的文件是类型:PDF 即使我使用上面的代码,我也得到了以下屏幕:
有谁知道我做错了什么?
答案 0 :(得分:2)
您使用的是什么Firefox和Selenium版本?
我使用的是Firefox 20.0,默认行为是预览pdf文件而不是下载,所以我需要添加specialProfile.SetPreference("pdfjs.disabled", true);
。
除此之外,您的代码对我来说也很完美。 (注意我使用了Directory.GetCurrentDirectory()而不是Setup.DownloadContractPath)。尝试使用sample.pdf并检查首选项是否实际位于:webdriver的配置页面打开Firefox。
以下是更详细的文章:Download PDF files automatically in Firefox using Selenium WebDriver
FirefoxProfile specialProfile = new FirefoxProfile();
specialProfile.SetPreference("browser.helperApps.alwaysAsk.force", false);
specialProfile.SetPreference("browser.download.manager.showWhenStarting", false);
specialProfile.SetPreference("browser.download.folderList", 2);
specialProfile.SetPreference("browser.download.dir", Directory.GetCurrentDirectory()); // my downloading dir
specialProfile.SetPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
specialProfile.SetPreference("browser.download.useDownloadDir", true);
specialProfile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
specialProfile.SetPreference("pdfjs.disabled", true); // for my Firefox 20.0
return new FirefoxDriver(specialProfile);
答案 1 :(得分:0)
您现在应该通过选项:
Dim fxOpt As New FirefoxOptions()
fxOpt.Profile.SetPreference("browser.helperApps.alwaysAsk.force", False)
fxOpt.Profile.SetPreference("browser.download.manager.showWhenStarting", False)
fxOpt.Profile.SetPreference("browser.download.folderList", 2)
fxOpt.Profile.SetPreference("browser.download.dir", Directory.GetCurrentDirectory()); // my downloading dir
fxOpt.Profile.SetPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", False)
fxOpt.Profile.SetPreference("browser.download.useDownloadDir", True)
fxOpt.Profile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
fxOpt.Profile.SetPreference("pdfjs.disabled", True)
WebDrv = New Firefox.FirefoxDriver(fxOpt)