2011-10-06 53 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