在C#中与网页交互

有一个使用ColdFusion创建的网站(不确定这是否重要)。 我需要与这个网站互动。 我需要做的主要事情是导航到不同的页面并单击按钮。

我想出了两个关于如何做到这一点的想法。 第一种是使用WebBrowser控件。 有了这个,我当然可以浏览页面,然后点击按钮(根据这个 )。

另一种方法是直接与html交互。 不确定如何做到这一点,但我假设我可以点击按钮或使用HTML请求与页面进行交互。

有没有人建议哪种方式更好? 有没有更好的方式我没有想到?

我使用Html AgilityPack解析html,然后使用HttpWebRequest适当地进行POST和GET。

虽然可以使用WebBrowser控件来模拟点击和导航,但您可以通过Html AgilityPack和HttpWebRequest获得有关发送内容的更多控制权

你考虑过Selenium吗? WebDriver API相当不错,并且在网站自动化方面允许很多东西。

HtmlAguilityPack对于提取Web元素和轻松查找标记非常有用。 但是,如果你需要远程“引导”网络会话,我更喜欢使用WatiN 。 它将自己称为Webunit testing框架,但只要您需要伪造浏览器部分,它就非常有用。 此外,它可以远程控制不同的浏览器,以满足您需要的大多数任务(例如,查找按钮并按下它,或者如果需要登录,则可以填写文本字段并填写文本)。

为什么不直接提交url? 这就是按钮点击会做什么。 使用WebRequest.Create可以直接提交到url。 无需加载,解析和“单击”按钮。