2012-04-04 69 views
0

在我用HtmlUnit解析的頁面之一上,我需要點擊()加載非常長的頁面的鏈接才能加載。不要等待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做某種異步點擊()?

不用說,一切都必須綁定到會話。

回答

1

我認爲你需要實例化一個新的後臺線程來做.click(),這樣你的主事件調度線程可以繼續而不停止。

首先在自己的類中封裝要在後臺完成的工作。 (您可能需要將您的WC元素取決於它的作用域參數):

if (linkIdontCareAboutButHaveToClick != null) 
{ 
    Thread thread = new backgroundWork(); 
    thread.start(); 
} 

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

然後你可以從你的主線程執行它