我用的是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);
作为替代方案,您可以使用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);
此函数返回自动下载设置为“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;
}
我可以使用以下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起)。 在清单中声明许可后,可以通过以下调用启动下载: 如果要在脚本中生成文件