.net / C的Html解析器和对象模型#

我正在寻找使用.net解析html以测试或断言其内容。 即

HtmlDocument doc = GetDocument(“some html”)List forms = doc.Forms()Link link = doc.GetLinkByText(“New Customer”)

这个想法是允许人们用c#编写测试,类似于他们在webrat(ruby)中的测试方式。

访问(’\’)fills_in“名称”,“mick”点击“保存”

我已经看过html敏捷包,sgmlreader等但是有人为此创建了一个对象模型,即一组表示html元素的类,如表单,按钮等?

干杯。

这里是用于html解析的好库,没有创建像HtmlButton,HtmlInput这样的对象但是如果你不想使用HTML DOM,那么它是一个很好的开始并自己创建它们

据我所知,最接近.NET中HTML DOM的是HTML DOM。

您可以使用Windows窗体WebBrowser控件,使用HTML加载它,然后从外部访问DOM。

顺便说一句,这是.NET。 任何适用于VB.NET的代码都适用于C#。

你有两个主要选择:

  1. 使用一些浏览器引擎(即Internet Explorer)将解析你的html,然后给你访问生成的DOM。 这个选项将需要你与浏览器引擎进行一些互操作(在它是简单的COM的情况下)

  2. 使用一些轻量级解析器,如HtmlAgilityPack

听起来像你正在尝试进行HTMLunit testing。 你看过Selenium吗? 它甚至还有C#库,因此您可以在C#中编写HTMLunit testing并声明元素存在,并且它们具有正确的值,甚至可以单击链接。 它甚至适用于JavaScript / AJAX站点。

HTML的最佳解析器是HTQL COM。 使用可以使用HTQL查询来检索HTML内容。