在我用 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() ?
不用说,一切都必须绑定(bind)到 session 。
最佳答案
我认为您需要实例化一个新的后台线程来执行 .click(),以便您的主事件调度线程可以继续而不停止。
首先将后台要做的工作封装在它自己的类中。 (您可能必须将 wc 元素作为参数传递,具体取决于它的范围):
class backgroundWork extends Thread {
public void run() {
wc.click(lienValidationPropocom);
}
}
然后你可以从主线程执行它:
if (linkIdontCareAboutButHaveToClick != null)
{
Thread thread = new backgroundWork();
thread.start();
}
关于java - 不要等待 HtmlUnit 中的 click() 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10009102/