尝试登录网站时出错c#

时间:2016-04-23 13:10:58

标签: c# twitter getelementbyid

我尝试使用getelementbyid在c#中登录twitter移动版。但是当我调用点击登录按钮时,我收到以下错误。 "对象引用未设置为对象的实例。"这是我正在使用的代码。任何帮助都会很棒。

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.Document.GetElementById("session[username_or_email]").InnerText = textBox1.Text.ToString();
    webBrowser1.Document.GetElementById("session[password]").InnerText = textBox2.Text.ToString();
    webBrowser1.Document.GetElementById("signupbutton").InvokeMember("click");
}

1 个答案:

答案 0 :(得分:0)

确保Document已完全加载,因此请使用DocumentCompleted可用的WebBrowser事件。

在某处添加DocumentCompleted事件处理程序(在构造函数或表单加载中,具体取决于项目的性质)

private void Form_Load(object sender, EventArgs e) 
{
    //An example place to add this event handler.
    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Document_Complete);
}

private void Document_Complete(object sender, WebBrowserDocumentCompletedEventArgs e)
{
   webBrowser1.Document.GetElementById("session[username_or_email]").InnerText = textBox1.Text;
   webBrowser1.Document.GetElementById("session[password]").InnerText = textBox2.Text;
   webBrowser1.Document.GetElementById("signupbutton").InvokeMember("click");
}

DocumentCompleted可以多次触发,在这种情况下,请参阅this post中的答案以提供帮助。

DocumentComplete documentation

除此之外,您无需在.ToString() TextBoxes属性上调用Text,它已经是一个字符串。