文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用htmlagilitypack更好的html分析和验证 ...

使用htmlagilitypack更好的html分析和验证 ...

时间:2010-08-09  来源:W3031213101

让我们面对它,有时候,当您正在编写自定义的提取和验证规则时Microsoft.VisualStudio.TestTools.WebTesting.HtmlDocument 类不会剪切它。HtmlDocument最初设计是作为一个内部类非常有效地为HTML响应正文之外的从属请求(比如图像)分析URLs。VS 2005 RTM 之前,我们将HtmlDocument 作为公有WebTestFramework API的一部分,但是时间安排和资源约束阻止我们为其添加更多的常规目的 DOM 功能如InnerHtml、InnerText 和GetElementById。您可以自己分析HTML字符串,不过

幸运的是还有一个更好的选择:HtmlAgilityPack

HtmlAgilityPack 是CodePlex 上的一个开源项目。它提供了标准的DOM API 和XPath 导航--即使 HTML 不是适当的格式!

 下面是使用HtmlAgilityPack.HtmlDocument代替WebTestFramework中的Web测试示例。它简单验证微软主页在导航工具条上将Windows列为第一项。下载HtmlAgilityPack 并从您的测试项目添加对它的引用来尝试此编码 Web 测试。

using System; using System.Collections.Generic; using System.Text; using Microsoft.VisualStudio.TestTools.WebTesting; using HtmlAgilityPack; public class WebTest1Coded : WebTest { public override IEnumerator<WebTestRequest> GetRequestEnumerator() { WebTestRequest request1 = new WebTestRequest("http://www.microsoft.com/"); request1.ValidateResponse += new EventHandler<ValidationEventArgs>(request1_ValidateResponse); yield return request1; } void request1_ValidateResponse(object sender, ValidationEventArgs e) { //load the response body string as an HtmlAgilityPack.HtmlDocument HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(e.Response.BodyString); //locate the "Nav" element HtmlNode navNode = doc.GetElementbyId("Nav"); //pick the first <li> element HtmlNode firstNavItemNode = navNode.SelectSingleNode(".//li"); //validate the first list item in the Nav element says "Windows" e.IsValid = firstNavItemNode.InnerText == "Windows"; } }

摘自网络:http://www.cnblogs.com/chenming/archive/2008/10/22/1316630.html

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载