HtmlUnit onclick执行下载文件

时间:2010-12-02 13:18:40

标签: java htmlunit

所以这是交易:
我正在访问一些网页(使用HtmlUnit),其中有一个按钮。我以编程方式点击该按钮(非常感谢Mads Hansen)

List l = page.getByXPath( "//input[@type='submit' and @value='Save as XML']" );
((HtmlSubmitInput)l.get(0)).click();

该按钮有一个onclick事件,如下:

onclick="document.forms[0].action="calcSaveXML_BG#POS";document.forms[0].submit()"

当我通过浏览器正常点击该按钮时,我有机会在我的硬盘上保存xml文件。
问题是,我希望能够以编程方式获取该xml文件。可以这样做吗?

1 个答案:

答案 0 :(得分:1)

好的,我想出来了。如果有人有兴趣:

List l = page.getByXPath( "//input[@type='submit' and @value='Save as XML']" );
XmlPage result = ((HtmlSubmitInput)l.get(0)).click();
String xml = result.getContent();

try
{
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document doc = db.parse( new java.io.ByteArrayInputStream( xml.getBytes( "UTF-8" ) ) );
    doc.getDocumentElement().normalize();
    //actual work going here
}
catch (Exception e)
{
    e.printStackTrace();
}