2012-04-04 47 views
0

在我用HtmlUnit解析的页面之一上,我需要点击()加载非常长的页面的链接才能加载。不要等待HtmlUnit中的click()响应

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

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

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

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

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

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

回答

1

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

首先在自己的类中封装要在后台完成的工作。 (您可能需要将您的WC元素取决于它的作用域参数):

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

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

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