【问题标题】:Download a file using Watir Webdriver and phantomjs使用 Watir Webdriver 和 phantomjs 下载文件
【发布时间】:2016-12-15 00:41:44
【问题描述】:

我正在使用 Watir Webdriver 和无头(phantomjs)浏览器访问网站,登录并使用 javascript 提交按钮单击并下载文件。当我单击提交时,我被 302 重定向到另一个地址我可以在我的网络下看到。这是要下载的文件的 url。我正在使用屏幕截图进行调试,所以我可以看到 phantomjs 工作正常,但是在点击提交按钮后,没有任何反应。整个过程在 firefox 上也可以正常工作.使用 watir webdriver,我如何获取该链接并将其保存在数据库中并重定向我的 phantomjs 以使用该链接下载文件?我尝试阅读 github 拉取请求、官方文档和博客文章,但我无法找到任何解决方案。请给我建议或解决方案。甚至一个字的建议也值得赞赏,因为它可能会帮助我解决问题。我尝试获取“http请求标头”但没有成功。我有browser.cookie.to_a和browser.headers只给我object这样Watir::HTMLElementCollection:0x000000024b88c0.谢谢

【问题讨论】:

  • 您需要使用自定义的 Firefox 配置文件。我最近想出了如何使用 selenium 来做到这一点,尽管我还没有尝试过使用 Phantom。请参阅here获取代码 sn-p
  • 感谢@maxpleaner,但我正在寻找无头解决方案。
  • 实际上我在该代码来自的项目中使用无头。如果在启动 firefox 驱动程序之前启动 headless,它将在 headless 范围内。
  • 感谢@maxpleaner,我在 watir webdriver 文档中找到了这段代码并尝试使用它,但不幸的是,该代码适用于 firefox,但不适用于 phantomjs。我添加了标题,但仍然无法正常工作。
  • 请参阅how-to-download-a-csv-file-using-phantomjs 了解有关使用幻像下载文件的信息。建议似乎不是改用 Casper

标签: javascript ruby phantomjs watir-webdriver


【解决方案1】:

我没有使用 Phantomjs 找到我的问题的解决方案,但我已经使用 watirwebdriver(0.9.1) headless 和 firefox(44.0) 解决了这个问题。 这些是我使用的设置。

profile = Selenium::WebDriver::Firefox::Profile.new
profile['download.prompt_for_download'] = false
profile['browser.download.folderList'] = 2 # custom location
profile['browser.download.dir'] = download_directory
profile['browser.helperApps.neverAsk.saveToDisk'] = "application/pdf"
profile['pdfjs.disabled'] = true
profile['pdfjs.firstRun'] = false
headless = Headless.new
headless.start

browser = Watir::Browser.new(:firefox, :profile => profile)
browser.goto 'www.google.com'
browser.window.resize_to(1280, 720)
puts browser.title
puts browser.url

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多