我试图使用代码,我就发现#1中的其他主题,以不问用户关于所应采取下载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,即使我正在使用的代码上面,我得到了以下画面:
有谁知道我可以做的不对?
Firefox和硒的版本,你使用的是什么?
我使用的是Firefox 20.0,默认行为是预览PDF文件,而不是下载,所以我需要添加specialProfile.SetPreference("pdfjs.disabled", true);
。
除此之外,你的代码的工作非常适合我。 (请注意我用Directory.GetCurrentDirectory(),而不是你的Setup.DownloadContractPath)。 与尝试它sample.pdf并检查偏好实际上是在约:你的webdriver的配置页面打开Firefox浏览器。
这里是一个更详细的文章: 下载PDF在Firefox中使用硒的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);
你现在应该在传递选项:
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)