2012-04-04 16 views
0

HtmlUnitで解析するページの1つでは、ロードするのに非常に長いページをロードするリンクをクリックする必要があります。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に何らかの非同期click()を実行するよう指示する方法はありますか?

セッションにすべてがバインドされている必要はありません。

答えて

1

メインイベントディスパッチスレッドが停止せずに続行できるように、新しいバックグラウンドスレッドをインスタンス化して.click()を実行する必要があると思います。

まず、自分のクラスにバックグラウンドで実行する作業をカプセル化します。 (あなたがそれの範囲に応じて、パラメータとしてのあなたのWC要素を渡す必要があります):

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

次に、あなたがあなたのメインスレッドからそれを実行することができます

if (linkIdontCareAboutButHaveToClick != null) 
{ 
    Thread thread = new backgroundWork(); 
    thread.start(); 
} 
関連する問題