当前位置: 首页 > 知识库问答 >
问题:

Selenium C#-Chrome驱动程序不会在无头模式下下载文件

欧君之
2023-03-14

我用的是chrome第77版,测试一些下载。但我不明白为什么它不让在无头模式下下载文件(只发生在无头模式下)。这是我正在使用的代码

_chromeOptions。AddUserProfilePreference(" download . default _ Directory " ,@ "目录文件夹");_chromeOptions。adduser profile preference(" intl . accept _ languages "," nl ");_chromeOptions。AddUserProfilePreference(" disable-popup-blocking "," true ");_ web driver = new chrome driver(_ chrome options);

共有3个答案

阎修杰
2023-03-14

作为替代方案,您可以使用Firefox无头浏览器下载文件。

FirefoxOptions options = new FirefoxOptions();
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", "C:\\Windows\\temp");
profile.setPreference( "browser.download.manager.showWhenStarting", false );
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream");
options.setProfile(profile);
driver = new FirefoxDriver(options);
杜霍英
2023-03-14

此函数返回自动下载设置为“USERPROFILE”下载文件夹的headless Chrome浏览器实例。你可以硬编码你想要的下载文件夹。

从测试初始值设定项调用函数 GetBrowserWebDriver(“Chrome”)

public IWebDriver GetBrowserWebDriver(string browser)
        {
            IWebDriver currentDriver = null;        
            switch (browser)
            {
                case "Chrome":                    
                    var options = new ChromeOptions();
                    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");                    
                    currentDriver = new ChromeDriver(options);
                    break;
                case "Firefox":
                    currentDriver = new FirefoxDriver();
                    break;
                case "IE":
                    currentDriver = new InternetExplorerDriver(new InternetExplorerOptions() { IgnoreZoomLevel = true });
                    break;
                default:
                    throw new NotSupportedException("");
            }
            return currentDriver;
        }
邢高澹
2023-03-14

我可以使用以下chrome选项在无头模式下下载文件:

            var chromeOptions = new ChromeOptions();
            chromeOptions.AddArgument("--headless");
            chromeOptions.AddArgument("--disable-gpu");
            chromeOptions.AddUserProfilePreference("download.default_directory", ApplicationSettings.StagingDirectory);
            chromeOptions.AddUserProfilePreference("profile.default_content_setting_values.automatic_downloads", 1);
            driver = new ChromeDriver(chromeOptions);

Chrome版本

Chrome驱动程序版本

 类似资料:
  • 我做我的代码在CromeDrive在'正常'模式和工作正常。当我切换到无头模式时,它不会下载文件。我已经尝试了我在互联网上找到的代码,但是不起作用。 有人知道如何解决这个问题吗? PS:我不一定要用Chomedrive。如果它在另一个驱动器中工作,对我来说没问题。

  • 我正在使用以下版本: Ruby 2.4.1 铬驱动2.33 selenium-webDrive3.7.0 watir 6.7.3 page对象2.2.2 Chrome浏览器 环境署。rb文件包含下载目录的路径。当不是在headless模式下运行测试时,文件可以完美下载,但是当我运行它时,没有任何事情发生,文件也不会下载。我使用的是ChromeDeriver 2.27和Chrome浏览器58。*它在

  • 我将硒与python中的Chrome驱动程序一起使用。 我的问题是,硒给我一个错误,因为我试图访问铬下载页面上的元素(铬://下载)。例如,我试图获取文件url"http://file.jpg"。 但当我试图通过其id获取元素时,我得到了一个异常。 代码: 例外情况: 通过 使用 javascript 对我也不起作用。为什么当我可以在浏览器中看到元素时,我会收到 ?

  • null 所以目前一切都在无头模式下工作。但是我需要在一个没有GUI的linux服务器上运行这个python脚本(因此需要headless模式)。出于某种原因,我所有无头运行的尝试都导致selenium web驱动程序在初始化时超时。 以下是回溯: 文件“C:\users\xuser\desktop\bomwebservice\backend\code\firefoxstarter.py”,第51

  • 问题内容: 我正在创建一个扩展程序,它将从网站上下载mp3文件。我正在尝试通过创建带有指向mp3文件的链接的新标签来实现此目的,但是chrome会继续在播放器中打开它而不是下载它。有什么方法可以创建一个弹出窗口,要求用户“另存为”文件? 问题答案: 快进了3年,现在GoogleChrome提供了API(自Chrome31起)。 在清单中声明许可后,可以通过以下调用启动下载: 如果要在脚本中生成文件