这不是重复项。我有一个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按钮。但是我确信必须有一种直接下载它的方法。

最佳答案

此问题告诉您如何查找弹出窗口:Handling a popup window using selenium

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

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

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

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

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

07-24 09:45
查看更多