下载 MP4 文件而不是使用 ChromeDriver 播放?

Download MP4 file instead of playing it using ChromeDriver?

提问人:Matija Grcic 提问时间:5/8/2014 最后编辑:jwwMatija Grcic 更新时间:6/4/2019 访问量:28911

问:

我正在使用 Chrome Web 驱动程序 2.10 chromedriver_win32.zipSelenium WebDriver 2.31.2

启用详细日志记录后,似乎 DesiredCapabilitieshttps://sites.google.com/a/chromium.org/chromedriver/capabilities) 传递得很好,

[1.174][FINE]:      Initializing session with capabilities {

   "browserName": "chrome",

   "chrome.switches": [  ],

   "chromeOptions": {

      "args": [  ],

      "binary": "",

      "extensions": [  ],

      "prefs": {

         "download.default_directory": "C:\\Downloads",

         "download.directory_upgrade": "true",

         "download.extensions_to_open": "",

         "download.prompt_for_download": "false"

      }

   },

   "javascriptEnabled": true,

   "platform": "WINDOWS",

   "version": ""

}

但 Chrome 网络驱动程序正在播放 *.mp4 而不是下载。

我已经尝试了如何使用 Selenium Webdriver .NET 绑定设置 Chrome 首选项的解决方案? 但它似乎不适用于较新的 Chrome Web 驱动程序版本,如果我尝试将 selenium-dotnet-2.31.2chromedriver_win_26.0.1383.0 一起使用,它会崩溃。

有人有建议吗?

谷歌-chrome selenium selenium-webdriver chrome-web-driver

评论

0赞 Chloe 7/5/2015
尝试确保下载目录存在。我犯了一个错误,目录不存在,Chrome会弹出一个对话框,询问保存位置。

答:

3赞 Suresh Raja 7/18/2014 #1

我通过以下代码完成了这项工作:

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
String downloadFilepath = "/path/to/download";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromeOptionsMap = new HashMap<String, Object>();
options.setExperimentalOptions("prefs", chromePrefs);
options.addArguments("--test-type");
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(ChromeOptions.CAPABILITY, chromeOptionsMap);
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(cap);
8赞 Prerit Jain 2/13/2015 #2
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
prefs.put("download.default_directory", getClass().getResource("/data/input").toString().replace("%20", " ").replace("file:","").replaceFirst("/", ""));
options.setExperimentalOption("prefs", prefs);

options.addArguments("--test-type");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

评论

0赞 Prerit Jain 2/13/2015
“getClass().getResource(”/data/input“).toString().replace(”%20“, ” “).replace(”file:“,”“).replaceFirst(”/“, ”)“ 是 maven target/data/input 的路径
-5赞 Sathish 6/13/2016 #3

这对我有很大的帮助:

DesiredCapabilities cap = DesiredCapabilities.firefox();

FirefoxProfile fprofile= new FirefoxProfile();
fprofile.setPreference("browser.download.folderList",2);  //0-desktop,1-file download folder,2-specified location
fprofile.setPreference("browser.download.manager.showWhenStarting", false); //prevent download file window
fprofile.setPreference("browser.download.dir","E:\\Downloadfilebyprogram");
fprofile.setPreference("browser.download.manager.focusWhenStarting", false);
//fprofile.setPreference("browser.helperApps.alwaysAsk.force", false);
//fprofile.setPreference("browser.download.manager.closeWhenDone", true);
//fprofile.setPreference("browser.download.manager.useWindow", false);
//fprofile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
//fprofile.setPreference("browser.helperApps.neverAsk.openFile,","application/vnd.ms-excel");
fprofile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/vnd.ms-excel");
fprofile.setPreference("browser.download.manager.alertOnExeOpen", false); //prevent from opening a file

cap.setCapability(FirefoxDriver.PROFILE, fprofile);
WebDriver driver=new FirefoxDriver(cap);

评论

4赞 AlBlue 6/13/2016
问题与Chrome有关,而不是Firefox。