0

HtmlUnit で解析するページの 1 つで、読み込みに非常に長いページを読み込むリンクをクリックする必要があります。

問題は、応答を待つ必要がないことです。リンクをクリックして、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 に答える