2011-12-22 39 views
0

請耐心等待我,因爲我相對較新的Java,甚至更新的HtmlUnit。我想知道是否有一種方法來同步主線程與htmlunit的js執行程序線程?問題是我想讀取元素文本值,而更新這些值的Ajax請求在後臺運行。HtmlUnit與JS執行程序線程同步

這可以在不修改HtmlUnit的源代碼的情況下完成嗎?

回答

0

我不確定這是否是您要查找的內容,但您可以在HtmlUnit的WebClient上設置一個NicelyResynchronizingAjaxController,它將自動將所有異步調用轉換爲同步調用。這樣可以測試您的AJAX代碼,而無需輪詢或休眠任意時間,希望AJAX調用已完成。這不是所有情況下的解決方案,但它通常非常有用。

+0

謝謝你的迴應。我正試圖編寫一個簡單的實時屏幕抓取代碼。我有一個無限的(用戶可中斷的)循環,我在其中檢查HtmlDOM中特定節點的變化,如果看到這樣的變化,我記錄它們的一些子節點的文本值。但是,有時似乎循環中的代碼正在訪問HtmlDOM,而後臺JavaScript仍在更新相同的節點。這導致崩潰。我想我可以使用DOMChangeListener但仍然會與後臺JS線程同步? – Ivan