在我用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()?
不用说,一切都必须与会话绑定。
答案 0 :(得分:1)
我认为您需要实例化一个新的后台线程来执行.click(),这样您的主事件调度线程就可以继续而不会停止。
首先将要在后台完成的工作封装在它自己的类中。 (您可能必须将wc元素作为参数传递,具体取决于其范围):
class backgroundWork extends Thread {
public void run() {
wc.click(lienValidationPropocom);
}
}
然后你可以从你的主线程执行它:
if (linkIdontCareAboutButHaveToClick != null)
{
Thread thread = new backgroundWork();
thread.start();
}