使用HtmlAgilityPack更好的HTML分析和验证
2008-10-13 17:48
239 查看
使用HtmlAgilityPack更好的HTML分析和验证
原文:http://www.cnblogs.com/oscarxie/archive/2007/11/14/959009.html让我们面对它,有时候,当您正在编写自定义的提取和验证规则时Microsoft.VisualStudio.TestTools.WebTesting.HtmlDocument 类不会剪切它。HtmlDocument最初设计是作为一个内部类非常有效地为HTML响应正文之外的从属请求(比如图像)分析URLs。VS 2005 RTM 之前,我们将HtmlDocument 作为公有WebTestFramework API的一部分,但是时间安排和资源约束阻止我们为其添加更多的常规目的 DOM 功能如InnerHtml、InnerText 和GetElementById。您可以自己分析HTML字符串,不过
幸运的是还有一个更好的选择:HtmlAgilityPack
![](http://i.ixnp.com/images/v3.51/t.gif)
。
HtmlAgilityPack
![](http://i.ixnp.com/images/v3.51/t.gif)
是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";
}
}
相关文章推荐
- 使用HtmlAgilityPack更好的HTML分析和验证
- 使用HtmlAgilityPack更好的HTML分析和验证
- 使用HtmlAgilityPack更好的HTML分析和验证
- 使用HtmlAgilityPack更好的HTML分析和验证
- [翻译]使用HtmlAgilityPack更好的HTML分析和验证
- Html Agility Pack ── 一个分析HTML的工具
- 使用HtmlAgilityPack和ScrapySharp抓取网页数据遇到的几个问题解决方法——格式编码问题
- C# HTML解析工具HtmlAgilityPack使用实例(一)
- Html Agility Pack ── 一个分析HTML的工具
- c#使用htmlagilitypack解析html格式字符串
- HtmlAgilityPack的简单使用
- 使用HttpWebRequest和HtmlAgilityPack抓取网页(拒绝乱码,拒绝正则表达式)
- 处理html页面元素工具类(HtmlAgilityPack.dll)的使用
- 使用HtmlAgilityPack实现简单的博客园主页内容抓取(2014-03-31)
- HtmlAgilityPack使用(一)【获取文档链接】
- C# 使用HtmlAgilityPack抓取网页信息
- 使用HtmlAgilityPack解析html
- HTML解析组件HtmlAgilityPack使用
- .Net解析html文档类库HtmlAgilityPack完整使用说明
- 【.NET】使用HtmlAgilityPack抓取网页数据