2011-10-06 58 views
2

我正在寫一個自動化測試框架,其中每個動作(加載新頁面等)後,我想驗證生成的HTML。我正在用java編寫框架,並且測試可能在坐在防火牆後面的環境中運行。在硒腳本中驗證Html示例

我目前有字符串格式的html,所以我正在尋找一種方法來驗證字符串是有效的。我在看jTidy,但我找不到如何做到這一點的好例子。有人有什麼主意嗎?

另外,我可能會考慮驗證css文件,所以如果建議可以考慮這一點。

由於提前, 詹姆斯

編輯:

我有東西在JTidy現在的工作,希望有人更knowlegable可以驗證它。我怎樣才能打印出來的錯誤?

tidy = new Tidy(); 
    ByteArrayOutputStream os = new ByteArrayOutputStream(); 
    String html = ScenarioFramework.driver.getHtml(); 
    try { 
     Node node = tidy.parse(new ByteArrayInputStream(html.getBytes("UTF-8")), os); 
    } catch (UnsupportedEncodingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     return false; 
    } 

    if ((tidy.getParseErrors() > 0) || (tidy.getParseWarnings() > 0)) { 

     System.out.println("Tidy Parser errors: " + tidy.getParseErrors()); 
     System.out.println("Tidy Parser warnings: " + tidy.getParseWarnings()); 
     return false; 
    } else{ 
     //return with no error 
     return true; 
    } 

回答

1

取決於你想要驗證的有多好。我看到有人將他們的測試與http://validator.w3.org/docs/api.html集成在一起......只是通過對我相信的服務執行HTTP帖子。會給更多的細節,jTidy。

它們也有CSS的等價物。

對不起,但我沒有代碼,只是一個演示,我看到一次,我認爲會很酷,有一天模仿。

對服務很好,儘管...您可能想避免驗證是否可以告訴HTML沒有改變。

+1

我看着這個。這裏有一個項目http://code.google.com/p/w3c-markup-validation-filter/它可能會讓你感興趣。我認爲它現在已經過時了。如果沒有其他人提出任何建議,我可能會進一步研究這個問題,我的問題就像我說我們可能在沒有外部連接的情況下運行測試,所以我將不得不主持服務,然後它就開始變得更加混亂。也就像你說的,我不想過於努力,但我們希望在每次部署之後運行測試。 – James