使用无头Chrome下载文件- Selenium C#

qkf9rpyu  于 2023-02-20  发布在  Go
关注(0)|答案(2)|浏览(277)
ChromeOptions options = new ChromeOptions();
           
            var chromeDriverService = ChromeDriverService.CreateDefaultService();
             chromeDriverService.HideCommandPromptWindow = true;
             chromeDriverService.SuppressInitialDiagnosticInformation = true;
           
            options.AddArgument("--headless");
            string downloadPath = System.Environment.GetEnvironmentVariable("USERPROFILE") + "\\Downloads";
            options.AddUserProfilePreference("download.default_directory", downloadPath);
            options.AddUserProfilePreference("profile.default_content_setting_values.automatic_downloads", 1);
            options.AddArgument("--window-size=1920,1080");

由于某种原因,我不能下载文件在 chrome 运行无头在 selenium -
当不在headless模式下运行时,下载文件没有问题。
selenium 网络驱动程序 chrome 驱动程序V110.0.5

g52tjvyc

g52tjvyc1#

根据Selenium开发页面:https://www.selenium.dev/blog/2023/headless-is-going-away/
从现在开始你需要使用"--headless=new"
但是,即使使用了这个新属性,我仍然无法下载文件

d5vmydt9

d5vmydt92#

我的用例有点不同。但是,下面的代码给了我预期的结果。

参考以下代码:

ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("download.default_directory", @"C:\Downloads");
options.AddUserProfilePreference("download.prompt_for_download", false);
ChromeDriver driver = new ChromeDriver(options);
driver.Navigate().GoToUrl("https://example.com/download-file");
IWebElement downloadLink = driver.FindElement(By.Id("download-link"));
downloadLink.Click();
System.Threading.Thread.Sleep(4000); // wait for awhile for 4 seconds
driver.Close();

相关问题