.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#。
你有两个主要选择:
-
使用一些浏览器引擎(即Internet Explorer)将解析你的html,然后给你访问生成的DOM。 这个选项将需要你与浏览器引擎进行一些互操作(在它是简单的COM的情况下)
-
使用一些轻量级解析器,如HtmlAgilityPack
听起来像你正在尝试进行HTMLunit testing。 你看过Selenium吗? 它甚至还有C#库,因此您可以在C#中编写HTMLunit testing并声明元素存在,并且它们具有正确的值,甚至可以单击链接。 它甚至适用于JavaScript / AJAX站点。
HTML的最佳解析器是HTQL COM。 使用可以使用HTQL查询来检索HTML内容。