C# WebBrowser-> Facebooklogin

09/22/2014 13:49 #Saiirex#1
Hey, ich möchte mich bei Facebook mithilfe von C# und dem WebBrowser Element einloggen. Das klappt jedoch nicht. Das Programm macht eine Pause von 10 Sekunden und wirft dann eine NullReferenceException.

Hier der Code:

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;

namespace FBGroupJoiner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://de-de.facebook.com");

           // if (webBrowser1.ReadyState == WebBrowserReadyState.Complete) {
                Thread.Sleep(10000);
                webBrowser1.Document.GetElementById("email").InnerText = textBox1.Text;
                webBrowser1.Document.GetElementById("pass").InnerText = textBox1.Text;
                webBrowser1.Document.GetElementById("loginbutton").InvokeMember("click");
            //}
        }
    }
}
09/22/2014 14:00 Ammy'#2
Ist es gewollt das Name und PW gleich sind ( weil du beides aus der selben Textbox liest)
09/22/2014 14:13 #Saiirex#3
Quote:
Originally Posted by Ammy' View Post
Ist es gewollt das Name und PW gleich sind ( weil du beides aus der selben Textbox liest)
Nein :awesome:.

Aber das ist nicht der Fehler.
09/22/2014 14:37 Ammy'#4
Lass die Page beim aufruf des Programms laden und den Button erst aktiv machen wenn die Seite fertig geladen ist. Kann einfach sein das die Seite nicht komplett fertig wird, da er ja nicht wartet bis sie fertig ist.
09/22/2014 15:35 Requi#5
Genaue Fehlerbeschreibung der NullReference wäre gut. Wo tritt sie auf?
09/22/2014 15:51 #Saiirex#6
Das Problem lag daran das der Browser noch nicht geladen war.

Damit ich keinen neuen Thread erstellen muss:

Wie kann ich auf den folgenden Button klicken:

[Only registered and activated users can see links. Click Here To Register...]
Der Code von ihm:
HTML Code:
<a class="mrm _42ft _4jy0 _39__ _4jy4 _517h" role="button" href="#" ajaxify="/ajax/groups/membership/r2j.php*******group_jump_header&group_id=268154400034569" rel="async-post">Gruppe beitreten</a>
09/22/2014 15:54 Requi#7
GetElementByClass?

Oder einfach ein Navigate() auf den Link der in ajaxify steht.
09/22/2014 16:00 #Saiirex#8
Quote:
Originally Posted by Requi View Post
GetElementByClass?

Oder einfach ein Navigate() auf den Link der in ajaxify steht.
Gibt es nicht.

[Only registered and activated users can see links. Click Here To Register...]
09/22/2014 16:11 Menan#9
Code:
HtmlElementCollection theElementCollection = default(HtmlElementCollection);
   theElementCollection = webBrowser1.Document.GetElementsByTagName("a");
   foreach (HtmlElement curElement in theElementCollection)
   {
        if (curElement.GetAttribute("classname").ToString = "mrm _42ft _4jy0 _39__ _4jy4 _517h")
        {
            webBrowser1.Navigate(curElement.GetAttribute("ajaxify"));
           //curElement.InvokeMember("click");
        }
    }
09/22/2014 16:16 #Saiirex#10
Quote:
Originally Posted by Menan View Post
Code:
HtmlElementCollection theElementCollection = default(HtmlElementCollection);
   theElementCollection = webBrowser1.Document.GetElementsByTagName("a");
   foreach (HtmlElement curElement in theElementCollection)
   {
        if (curElement.GetAttribute("classname").ToString = "mrm _42ft _4jy0 _39__ _4jy4 _517h")
        {
            webBrowser1.Navigate(curElement.GetAttribute("ajaxify"));
           //curElement.InvokeMember("click");
        }
    }
[Only registered and activated users can see links. Click Here To Register...]
kommt bei :
Code:
if (curElement.GetAttribute("classname").ToString = "mrm _42ft _4jy0 _39__ _4jy4 _517h")
09/22/2014 16:19 Menan#11
Ersetz mal:

Code:
curElement.GetAttribute("classname")
durch:
Code:
curElement.GetAttribute("className")
09/22/2014 16:21 #Saiirex#12
Nope, der selbe Fehler.
09/22/2014 16:22 Requi#13
Mach mal Klammern nach ToString
09/22/2014 16:27 #Saiirex#14
[Only registered and activated users can see links. Click Here To Register...]
09/22/2014 16:55 Ammy'#15
== nicht = ;)