2016-05-07 53 views
1

我試圖下載一些.xls文件使用硒驅動器ChromeDriver和PhantomJSD(背景模式)。 ChromeDriver的工作非常完美,但PhantomJS不會下載文件。手動下載文件 - PhantomJS使用硒

那麼,什麼是我的代碼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/)。它基本上描述瞭如何爲下載設置chrome驅動程序的配置文件首選項。畢竟,驅動程序僅僅是運行你的本地chrome二進制文件。我希望這有助於你的偵察。

總之,這樣的事情應該告訴你的驅動程序在哪裏下載:

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

感謝您的回覆!但似乎它不是我所需要的。該chromedriver做dwonload文件。我的問題與鉻驅動程序是,我想在後臺做這項工作。 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 /下載文件到特定文件夾使用水豚和poltergeist驅動程序),但這可能不是一個可用的解決方案。 –