C#登录没有ID的站点

时间:2017-03-05 17:36:41

标签: c# html winforms

我正在尝试创建一个将某人自动登录到网站的功能。

frm.Login和frm.Password就在那里因为我从另一个表单导入字符串。另一种形式是他们输入凭证的地方。

声明: 我无法访问此网站!

HTML代码

<input type="email" required="" size="21" name="email"> //email
<input type="password" required="" name="password" size="21"> //password
<input type="submit" name="submit" value="Sign in"> //button to sign in.

我的尝试

Form3 frm = new Form3();
frm.ShowDialog();
webBrowser1.Navigate("examplesite.php");

webBrowser1.Document.GetElementsByTagName("input")
            .GetElementsByName("email")[0]
            .SetAttribute("Value", frm.Login);

webBrowser1.Document.GetElementsByTagName("input")
            .GetElementsByName("password")[0]
            .SetAttribute("Value", frm.Password);

ClickButton("submit");

ClickButton的代码

public void ClickButton(string type)
{
    var button = webBrowser1.Document.GetElementsByTagName("submit")
             .Cast<HtmlElement>()
             .FirstOrDefault(m => m.GetAttribute("type") == type);
    if (button != null)
        button.InvokeMember("click");
}
  

错误:Test.exe中出现未处理的“System.NullReferenceException”类型异常附加信息:对象引用未设置为对象的实例。

     

提供错误的行:webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("email")[0].SetAttribute("Value", frm.Login);

1 个答案:

答案 0 :(得分:0)

用于单击按钮的代码。它需要&#34;登录&#34;价值并点击它

 foreach (HtmlElement el in elCol)
                {
                    if (el.GetAttribute("value").Equals("Sign in"))
                    {
                        el.InvokeMember("click");
                    }
                }