我正在尝试使用selenium WebDriver和ChromeDriver以及PhantomJSD(用于后台模式)下载一些.xls文件。它适用于ChromeDriver,但PhantomJS不会下载该文件。
那么我的代码简单就是登录一些网站并单击此按钮:
<button id="btnExcelExport" aria-label="יצוא נתונים" class="" data-tooltip="יצוא לאקסל">
</button>
单击按钮后,使用链接
创建框架<iframe src="/Online/ExportExcel.ashx?ExportParameter=ExportToExcel&Action=75273143-ee19-47ad-91ac-1377fe3c8875&Alias=428" style="display: none;"></iframe>
由于我发现PhantomJS不支持下载,我尝试使用此代码link手动下载文件,并进行一些小修改以使其与我的代码相匹配。
结果,它下载了登录页面的html文件代码。
如何设法下载此文件?
(或者我应该放弃PhantomJS,但我找不到一个简单的重复...)
谢谢!
答案 0 :(得分: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编写的,但应该很容易翻译成任何其他语言。