【问题标题】:Download MP4 file instead of playing it using ChromeDriver?下载 MP4 文件而不是使用 ChromeDriver 播放它?
【发布时间】:2014-06-25 04:10:43
【问题描述】:

我正在使用 Chrome Web Driver 2.10 chromedriver_win32.zipSelenium WebDriver 2.31.2

启用详细日志记录后,似乎 DesiredCapabilities (https://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 而不是下载。

我已经尝试了How to set Chrome preferences using Selenium Webdriver .NET binding? 的解决方案,但它似乎不适用于较新的 Chrome Web 驱动程序版本,如果我尝试将selenium-dotnet-2.31.2chromedriver_win_26.0.1383.0 一起使用,它会崩溃。

有人有建议吗?

【问题讨论】:

  • 尝试确保下载目录存在。我犯了一个错误,目录不存在,Chrome 会弹出一个对话框询问保存位置。

标签: google-chrome selenium selenium-webdriver chrome-web-driver


【解决方案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);

【讨论】:

    【解决方案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);
    

    【讨论】:

    • "getClass().getResource("/data/input").toString().replace("%20", " ").replace("file:","").replaceFirst ("/", "")" 是maven target/data/input的路径
    【解决方案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);
    

    【讨论】:

    • 问题与 Chrome 相关,而不是 Firefox。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多