2012-09-11 40 views
1

我正在嘗試使用HtmlUnit來製作我的GWT應用程序的HTML快照。這個想法是讓我的AJAX應用程序可以抓取。帶GWT應用程序的HtmlUnit返回不完整頁面

不幸的是,我提取的頁面似乎並不完整。當我在我的普通瀏覽器中訪問該頁面時,缺少可查看的內容。我只需要HTML快照中的文本。 這裏是我的代碼:

public class Browser { 

    public static void main(String[] args) throws IOException, InterruptedException { 

     final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10); 
     webClient.setJavaScriptEnabled(true);//JS is enabled by default but... 
     webClient.setAjaxController(new NicelyResynchronizingAjaxController()); 

     HtmlPage page = webClient.getPage("http://meridianbet.com"); 

     int n = webClient.waitForBackgroundJavaScript(30000); 

     System.out.println("Executing " + n + " JavaSript jobs!"); 

     System.out.println("OUTPUT: " + page.asXml()); 
     webClient.closeAllWindows(); 
     } 
} 

還有執行代碼後7個未完成的JS工作。不管我等待多久,工作都不會被執行。 有什麼幫助嗎? //我正在使用最新的html單元2.10

回答

0

我遇到了類似的問題。你是否嘗試過使用一個循環是這樣的:

while (i > 0) 
     { 
      i = webClient.waitForBackgroundJavaScript(1000); 

      if (i == 0) 
      { 
       break; 
      } 
      synchronized (page) 
      { 
       System.out.println("wait"); 
       page.wait(500); 
      } 
     } 

當我使用像這樣的循環,它只是坐在那裏,說:「等」下去。但也許它會適用於你。

如果您確實解決了您的問題,請確保您發佈了您所做的事情,因爲我認爲它會解決我的同樣問題。

我發現這個問題上的代碼:HTMLUnit doesn't wait for Javascript

+0

我已經試過了。因爲還有未完成的JavaScript工作,所以我得到了無限循環。問題在於我在錯誤的地方獲得錨定標籤。 – Manijak

+0

這就是我得到的。由於我沒有找到解決方案,我正在手動糾正。 – Manijak

相關問題