不要等待HtmlUnit中的click()响应

时间:2012-04-04 10:13:26

标签: java htmlunit

在我用HtmlUnit解析的其中一个页面上,我需要点击()一个链接,该链接加载一个很长的加载页面。

事情是我不需要等待回应;我只需要点击链接,继续使用我的WebClient对象。

HtmlElement linkIdontCareAboutButHaveToClick = wc.checkAndGetElement("//div[@class='next']/a");

if (linkIdontCareAboutButHaveToClick != null)
{
    wc.click(lienValidationPropocom);
}

// do some more thing with wc without waiting
...

有没有办法告诉HtmlUnit做某种异步click()?

不用说,一切都必须与会话绑定。

1 个答案:

答案 0 :(得分:1)

我认为您需要实例化一个新的后台线程来执行.click(),这样您的主事件调度线程就可以继续而不会停止。

首先将要在后台完成的工作封装在它自己的类中。 (您可能必须将wc元素作为参数传递,具体取决于其范围):

class backgroundWork extends Thread {
    public void run() {
        wc.click(lienValidationPropocom);
    }
}

然后你可以从你的主线程执行它:

if (linkIdontCareAboutButHaveToClick != null)
{
    Thread thread = new backgroundWork();
    thread.start();
}