【问题标题】:How to download file linking to Javascript using Java如何使用 Java 下载链接到 Javascript 的文件
【发布时间】:2014-03-28 14:27:00
【问题描述】:

这不是重复的。我有一个 Selenium 解决方案,但我不喜欢使用 Selenium 。我希望有人可以帮助我使用 HttpUrlConnection 代码直接处理这个 javascript 而不是使用 Selenium 找到解决该弹出窗口的工作


在网页上我有以下链接(用图片覆盖)

     <a .............

     onclick="javascript:downLoad('CAMID(\xxx;)/folder[@name=\'test\']/folder[@name=\'test\']

    /reportView[@name=\'test\']/output[@name=\'test']',

    'spreadsheetML' )" alt="Download" ></a>

我点击这个链接会弹出一个窗口,我可以点击save

如何使用 Java 以编程方式获取此文件?必须有一种方法可以流式传输文件,甚至无需触摸该弹出窗口


到目前为止,我正在使用 Selenium 和 Java Robot 对象来点击 save 按钮。但我相信一定有办法直接下载。

【问题讨论】:

  • 接受this SO post 的答案应该可以帮助您入门(简而言之:使用 java.net.HttpUrlConnection)。
  • 比我实际使用 HttpUrlConnection 进行简单的下载,如 .pdf 文件。 .但在这段代码中,我有一个链接会弹出一个 javascript open save cancel 窗口。我该如何处理这个非常弹出\

标签: java javascript http selenium


【解决方案1】:

这个问题告诉你如何找到弹窗:Handling a popup window using selenium

之后,您可以使用通常的 Selenium API 点击保存按钮。

[编辑]您可以使用HttpClient 从网络服务器下载。

第一步是下载带有链接的页面。然后,您可以使用各种方法来定位链接。然后,您将不得不执行 JavaScript,或者,如果您确定脚本不会经常更改,请在 Java 中复制代码以提供相同的 URL。

然后,您可以再次使用 HttpClient 直接下载文档。

如果需要执行 JavaScript,可以使用Rhino。如果脚本从浏览器环境访问各种对象,看envjs

【讨论】:

  • 谢谢。 +1。实际上,我希望根本不使用 Selenium。我正在建立 HttpUrlConnection 。有什么方法可以直接流式传输该文件
  • @Andrei Vasilev - 是的,这是推荐的方式,使用 Apache HTTPClient,正如 Aaron 上面所建议的那样。
猜你喜欢
  • 2017-04-05
  • 2012-09-10
  • 1970-01-01
  • 2018-06-20
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
相关资源
最近更新 更多