自动登录站点并单击按钮

时间:2009-06-20 09:35:05

标签: c#

要登录站点,请转到特定页面(例如本地路由器页面)并单击按钮进行操作(例如,连接)。因为我几乎每天都这样做,所以我想通过小型C#应用程序实现自动化。我不知道怎么做。有什么指针吗?

5 个答案:

答案 0 :(得分:1)

使用像Fiddler这样的工具捕获HTTP请求的内容。有了这些信息,您就可以构建一个执行这些HTTP请求的应用程序。

答案 1 :(得分:1)

使用

跟踪您发送的HTTP请求
  • 浏览器插件(Firebug,httpwatch,tamperdata等)
  • 一个Web调试代理(fiddler,charles等)
  • 数据包嗅探器(wireshark等)

然后使用System.Net命名空间中的类(例如WebClient)来执行相同的请求。

答案 2 :(得分:1)

为什么只需点击一次代码C#?试试AutoIt

这是starter tutorial。这将帮助您快速自动单击应用程序的默认按钮。来自AutoIt的更多技巧,您几乎可以通过手机告诉某人在GUI上做任何事情。

AutoIt是一个非常有用的工具,如果您正在使用GUI测试或者梦想编写大量常规GUI活动的脚本,那么它就可以随时使用。

答案 3 :(得分:1)

您还可以使用Selenium IDE,这是一个FireFox插件,允许您录制宏像脚本,以便在浏览器中播放。它专为自动测试网页而设计,但您可以使用C#导出脚本,而C#又可以从控制台应用程序运行。

如果您打算将其作为C#应用运行,则还需要查看Selenium RC

快乐脚本:)

答案 4 :(得分:0)

我在C#中创建了使用Microsoft提供的WebBrowser控件的应用程序 并用它来打开一个网站,并试图操纵它的HTML并尝试将值放入 一些文本框并试图按下它对我有用的按钮,希望它对你也有帮助 示例代码如下

internal void LoginToSite()
        {
            WebBrowser.Navigate("some site login Page");
            _Processing = true;
            var username = ConfigurationManager.AppSettings["username"];
            var password = ConfigurationManager.AppSettings["password"];
            while (_Processing)
            {
                Application.DoEvents();
                if (WebBrowser.ReadyState == WebBrowserReadyState.Complete || WebBrowser.ReadyState == WebBrowserReadyState.Interactive)
                {
                    var htmlDocument = this.WebBrowser.Document;
                    if (htmlDocument != null)
                    {
                        foreach (HtmlElement tag in htmlDocument.GetElementsByTagName("input"))
                        {
                            switch (tag.Name)
                            {
                                case "username":
                                    tag.InnerText = username;
                                    break;
                                case "password":
                                    tag.InnerText = password;
                                    break;
                                case "cmdlogin":
                                    tag.RaiseEvent("onclick");
                                    tag.InvokeMember("Click");
                                    break;
                            }

                        }
                    }
                    _Processing = false;
                }
            }
        }