2013-03-21 25 views
6

ChromeとSeleniumでCapybaraを使用しています。自動ダウンロードを引き起こすリンクをクリックしようとすると、ファイルが正しくダウンロードされます。これをやり直すと、「このサイトは複数のファイルをダウンロードしようとしていますが、許可しますか?」というメッセージが表示されます。Capybara/SeleniumでChromeに複数のファイルをダウンロードする方法は?

enter image description here

私はこのメッセージを無効にするために使用することができflagを探していましたが、何かを見つけることができませんでした。このメッセージを回避して、ページの更新に頼ることなく複数のダウンロードを許可する方法はありますか? (たとえば、プログラムで[許可]ボタンをクリックする方法はありますか?)

+0

ここにあなたのセットアップのための右のフラグを見つける方法についての私のポストです:のhttp:/ /stackoverflow.com/a/36821119/4854090 –

答えて

-2

解決策がない場合は、要素を取得してクリックします。

driver.findElement(By.xpath("xpath")).click(); 
+0

彼はそれをクリックしています。それが問題です。ブラウザは、複数のダウンロードをブロックするためのセキュリティ手段での粗雑な試みを使用しており、その周りに簡単な方法はないようです。私は人々が「ダウンロードされたコンテンツをどこに保存するか尋ねる」という設定をトグルで話しているのを見てきましたが、それは私にとってはうまくいきませんでした。 –

0

使用Chromeの[オプション]

WebDriver driver = null; 
ChromeOptions options = new ChromeOptions(); 
     Map<String, Object> prefs = new HashMap<String, Object>(); 
     prefs.put("profile.default_content_settings.popups", 0); 
     prefs.put("profile.content_settings.pattern_pairs.*.multiple-automatic-downloads", 1); 
     //Turns off download prompt 
     prefs.put("download.prompt_for_download", false); 
     options.setExperimentalOption("prefs", prefs); 

    driver = new ChromeDriver(options); 
関連する問題