Selenium自动下载文件c#
Selenium download file automatically c#
我正在尝试设置 Firefox 以便自动下载文件。我按照 中的建议进行了操作,但无法正常工作。
这是我的代码:
FirefoxOptions options = new FirefoxOptions();
options.SetPreference("browser.download.folderList", 2);
options.SetPreference("browser.download.dir", "C:\Windows\temp");
options.SetPreference("browser.download.useDownloadDir", true);
options.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
options.SetPreference("pdfjs.disabled", true); // disable the built-in PDF viewer
options.SetPreference("browser.download.useDownloadDir", true);
driver = new FirefoxDriver(options);
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("https://www.mozilla.org/en-US/foundation/documents");
driver.FindElement(By.LinkText("IRS Form 872-C")).Click();
PDF 仍在浏览器 PDF 查看器中打开。
要禁用在 firefox 中打开和下载 pdf:
FirefoxOptions options = new FirefoxOptions();
options.addPreference("browser.download.folderList", 2);
options.addPreference("browser.download.dir", downloadPath);
options.addPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
options.addPreference("pdfjs.enabledCache.state",false);
WebDriver driver = new FirefoxDriver(options);
可以找到 Mime 提示列表 here。
我的错误,我没有意识到问题是针对C#的。
所以我在 Java 中做到了,我认为 selenium 的功能与语言无关。不过,这里重要的是如何配置FirefoxDriver。
使用硒 3.8:
FirefoxProfile profile = new FirefoxProfile();
//if you want to download the file to a different directory than the default
profile.setPreference("browser.download.dir", "dirPath");
//0: the desktop, 1 (default): the downloads folder, 2: the last folder specified for a download
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf;");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("pdfjs.disabled", true);
//The previous configuration can also be done in FirefoxOptions, I did not know and I simply passed the FirefoxProfile object
FirefoxOptions fo = new FirefoxOptions();
fo.setProfile(profile);
FirefoxDriver driver = new FirefoxDriver(fo);
driver.get("http://your.web");
driver.findElement(By.id("download_button")).click();
我正在尝试设置 Firefox 以便自动下载文件。我按照
这是我的代码:
FirefoxOptions options = new FirefoxOptions();
options.SetPreference("browser.download.folderList", 2);
options.SetPreference("browser.download.dir", "C:\Windows\temp");
options.SetPreference("browser.download.useDownloadDir", true);
options.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
options.SetPreference("pdfjs.disabled", true); // disable the built-in PDF viewer
options.SetPreference("browser.download.useDownloadDir", true);
driver = new FirefoxDriver(options);
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("https://www.mozilla.org/en-US/foundation/documents");
driver.FindElement(By.LinkText("IRS Form 872-C")).Click();
PDF 仍在浏览器 PDF 查看器中打开。
要禁用在 firefox 中打开和下载 pdf:
FirefoxOptions options = new FirefoxOptions();
options.addPreference("browser.download.folderList", 2);
options.addPreference("browser.download.dir", downloadPath);
options.addPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
options.addPreference("pdfjs.enabledCache.state",false);
WebDriver driver = new FirefoxDriver(options);
可以找到 Mime 提示列表 here。
我的错误,我没有意识到问题是针对C#的。
所以我在 Java 中做到了,我认为 selenium 的功能与语言无关。不过,这里重要的是如何配置FirefoxDriver。
使用硒 3.8:
FirefoxProfile profile = new FirefoxProfile();
//if you want to download the file to a different directory than the default
profile.setPreference("browser.download.dir", "dirPath");
//0: the desktop, 1 (default): the downloads folder, 2: the last folder specified for a download
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf;");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("pdfjs.disabled", true);
//The previous configuration can also be done in FirefoxOptions, I did not know and I simply passed the FirefoxProfile object
FirefoxOptions fo = new FirefoxOptions();
fo.setProfile(profile);
FirefoxDriver driver = new FirefoxDriver(fo);
driver.get("http://your.web");
driver.findElement(By.id("download_button")).click();