0

在我使用 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() ?

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

4

1 回答 1

1

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

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

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

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

if (linkIdontCareAboutButHaveToClick != null)
{
    Thread thread = new backgroundWork();
    thread.start();
}
于 2012-07-14T14:38:26.723 回答