这不是重复项。我有一个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。