在使用selenium+c#+firefox的过程中,因为要直接下载pdf文件,zip等等多种文件,于是便有了下面的代码。
FirefoxOptions tempOptions = new FirefoxOptions();
tempOptions.SetPreference("pdfjs.disabled", true);//关闭pdf查看
tempOptions.BrowserExecutableLocation = System.IO.Directory.GetCurrentDirectory() + "\\Mozilla Firefox\\firefox.exe";//打包后设置浏览器路径
//tempOptions.AddArgument("--headless");//无窗口运行
tempOptions.SetPreference("browser.download.folderList", 2);
tempOptions.SetPreference("permissions.default.image", 2);//无图
tempOptions.SetPreference("browser.download.manager.showWhenStarting", false);
tempOptions.SetPreference("browser.helperApps.alwaysAsk.force", false);
tempOptions.SetPreference("browser.download.dir", "D:\\DataPdf");//设置下载路径
tempOptions.SetPreference("browser.download.useDownloadDir", true);
tempOptions.SetPreference("permissions.default.stylesheet", 2);
tempOptions.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/zip,application/pdf");//禁止文件下载提示
FirefoxDriver tempDriver = new FirefoxDriver(tempOptions);
但是当我的下载文件多出一个doc的时候,我就一筹莫展了,因为不知道doc在firefox中的文件类型算是什么样的。
也曾填过“,appliction/doc”,根本没用。
在网上看到可以通过下载文件,然后再在菜单->选项->常规->文件与应用选项中去选择。
可是我一去看,却发现根本没有doc的选项卡。
然后我看到网上说是可以通过下载获取这种文件类型,可我下载之后问题还是没有解决。
最后我发现在下载的时候,你需要这样做。
之后就可以在文件与应用程序里面查看文件类型了。
选中你要的文件类型,点击其他。
然后
你把得到的这句话加到上面代码中的browser.helperApps.neverAsk.saveToDisk,就可以了。
如下:
tempOptions.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.ms-word,application/zip,application/pdf");//