2016-04-23 5 views
0
anmelden

Ich versuche, Twitter mobile Version in C# mit geelementbyid anmelden. aber wenn ich den Klick auf die Login-Taste aufrufen, erhalte ich den folgenden Fehler. " Der Objektverweis wurde nicht auf eine Instanz eines Objekts festgelegt." Hier ist der Code, den ich benutze. Jede Hilfe wäre fantastisch.Fehler beim Versuch, auf der Website C#

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"); 
} 
+0

Welche Zeile gibt den Fehler? Wenn Sie nicht sicher sind, versuchen Sie es mit einem Debugger. – nhouser9

+0

Es ist die allerletzte Zeile, in der die Login-Schaltfläche geklickt wird – Waypast

+0

Sind Sie sicher, dass "signupbutton" die tatsächliche ID des Elements ist? –

Antwort

0

Stellen Sie sicher, dass die Document vollständig zuerst geladen hat, so die Verwendung der die DocumentCompleted Veranstaltung zum WebBrowser machen.

Fügen Sie die DocumentCompleted Event-Handler irgendwo (im Konstruktor oder Form Belastung, je nach Art des Projektes)

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 viele Male abfeuern kann, in welchem ​​Fall die Antwort in this post sehen zu helfen.

DocumentComplete documentation

Abgesehen, gibt es keine Notwendigkeit .ToString() auf der TextBoxesText Eigenschaft zu nennen, es ist schon ein String.