2016-05-07 6 views
1

ChromeDriverとPhantomJSD(バックグラウンドモード用)を備えたselenium WebDriverを使用していくつかの.xlsファイルをダウンロードしようとしています。 ChromeDriverで完璧に動作しますが、PhantomJSはファイルをダウンロードしません。ファイルを手動でダウンロードする - PhantomJS using Selenium

は、だから私のコードはsimpllyいくつかのウェブサイトをログインしてこのボタンをクリックしているんです:ボタンがクリックされている

<button id="btnExcelExport" aria-label="יצוא נתונים" class="" data-tooltip="יצוא לאקסל"> </button>

、リンクを作成したフレーム:

<iframe src="/Online/ExportExcel.ashx?ExportParameter=ExportToExcel&amp;Action=75273143-ee19-47ad-91ac-1377fe3c8875&amp;Alias=428" style="display: none;"></iframe> 

ので、私はPhantomJSがダウンロードをサポートしていないことを知りました。私はこのコードを使って手動でファイルをダウンロードしようとしましたlink小さな修正を加えて私のコードに合わせました。

結果として、ログインページのhtmlファイルコードをダウンロードします。

このファイルをダウンロードするにはどうしたらいいですか?

(または私はPhantomJSをあきらめなければならないが、私は簡単にrepalcementが見つかりませんでした。)

ありがとう!

+0

お願いします。 – BTob

答えて

2

私はこの記事を過去に紹介しました(http://collectiveidea.com/blog/archives/2012/01/27/testing-file-downloads-with-capybara-and-chromedriver/)。基本的に、ダウンロード用のクロムドライバのプロファイルプリファレンスを設定する方法について説明しています。結局のところ、運転手は単にあなたのネイティブのクロムバイナリを実行しているだけです。私はこれがあなたの夢中に役立つことを願っています。

要約すると、このようなものはどこダウンロードするためにあなたのドライバーを教えてください:

require "selenium/webdriver" 

Capybara.register_driver :chrome do |app| 
    profile = Selenium::WebDriver::Chrome::Profile.new 
    profile["download.default_directory"] = "YOUR_DOWNLOAD_PATH" 
    Capybara::Selenium::Driver.new(app, :browser => :chrome, :profile => profile) 
end 

Capybara.default_driver = Capybara.javascript_driver = :chrome 

は、今あなたが処理するために残っているすべては、上記のリンクが記載されており、一般的に、ダウンロードプロセスです。この記事で説明したプロセスはRubyで書かれていますが、他の言語にも簡単に翻訳されるべきです。

+0

あなたの返信ありがとう!しかし、それは私が必要なものではないようです。クロムドライバーはファイルをダウンロードします。クロームドライバーに関する私の問題は、私がバックグラウンドで仕事をしたいということです。 PhantomJSドライバはバックグラウンドでうまく動作しますが、ファイルをダウンロードしません。 – BTob

+0

ああ、すみません!ファイルのダウンロードに関するPhantomjsのリポジトリからこのオープンな[pull request(10052)](https://github.com/ariya/phantomjs/issues/10052)が見つかりました。それは進行中の仕事のように見えます。申し訳ありませんが私はより多くの助けができませんでした。私はヘッドレスの[Poltergeist Driver](https://github.com/teampoltergeist/poltergeist)を使っている人がバックグラウンドでファイルをダウンロードするためのインラインJavaScriptマジックを行っているのを見てきました(http://stackoverflow.com/questions/15739423/downloading-file-to-specific-folder-capybara-and-poltergeist-driverを使用して)、それは利用可能な解決策ではないかもしれません。 –

関連する問題