2012-08-27 30 views
0

我已經寫它運行在Java中的硒腳本時沒有顯示正確的鏈接:使用HTML頁面中的HtmlUnit司機

String pageName = "my test url which invloves an link to html which has javscript excution"; 
    logger.log(Level.INFO,"Page name : " + pageName); 
    WebDriver driver = new HtmlUnitDriver(true); 

    logger.log(Level.INFO,"driver instance created "); 
    String str =""; 

    logger.log(Level.INFO,"opening the url now.... "); 
    driver.get(pageName); 
    logger.log(Level.INFO,"url is now opened :: url = "+driver.getCurrentUrl()); 
    logger.log(Level.INFO,"driver now going to sleep = "+driver.getCurrentUrl()); 
    Thread.sleep(150000); 

    logger.log(Level.INFO,"Wake up from sleep now...."); 
    logger.log(Level.INFO,"URL ::"+driver.getCurrentUrl()); 
    logger.log(Level.INFO,"PageSource ::"+driver.getPageSource()); 
    try { 
     logger.log(Level.INFO,"Driver going to wait now..."); 
     driver.wait(100000); 
     logger.log(Level.INFO,"Driver came out of wait now normally..."); 
    } catch (Exception e) { 
     logger.log(Level.INFO,"Driver came out of wait now exception::"+e); 
    } 

    logger.log(Level.INFO,"driver instance task completed "); 
    logger.log(Level.INFO,driver.getCurrentUrl()); 

    logger.log(Level.INFO,driver.getCurrentUrl()); 
    logger.log(Level.INFO,str); 

    driver.close(); 

現在,當我調試代碼,我得到我正確的結果,但是當我跑這片來自servlet的代碼我只得到html內容,而不是從給定鏈接中除外的正確內容。

我也嘗試過使用firefox驅動程序,並且相同的代碼可以正常工作。 我也嘗試了與Web客戶端相同的代碼,但同樣的問題即將到來。

任何人都可以幫助我解決這個問題嗎?

謝謝,

回答

0

當您調試代碼時,您可以在檢查點停止。但是你不能阻止瀏覽器加載。它獨立加載。 Htmlunitdriver pagesource會返回所有html內容,因爲它無法完全執行javascript。如果該htmlpage包含Ajax,則會調用javascript,然後按原樣顯示調用。