Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 21:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# WebBrowser-> Facebooklogin

Discussion on C# WebBrowser-> Facebooklogin within the .NET Languages forum part of the Coders Den category.

Reply
 
Old 09/23/2014, 08:33   #16
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
Quote:
Originally Posted by Ammy' View Post
== nicht =
#Saiirex is offline  
Old 09/23/2014, 08:39   #17
 
elite*gold: 0
Join Date: Sep 2014
Posts: 896
Received Thanks: 100
leg mal über dem if aber unter dem foreach nen string an

string className = curElement.GetAttribute("classname").ToString();

und dann im if

If(className == "mrm _42ft _4jy0 _39__ _4jy4 _517h")
{
//code
}
Ammy' is offline  
Thanks
1 User
Old 09/23/2014, 08:49   #18

 
Syc's Avatar
 
elite*gold: 666
Join Date: Apr 2011
Posts: 5,810
Received Thanks: 2,418
Hört sich danach an, als würden die Klammern immer noch fehlen.

Das ToString() sollte aber sowieso unnötig sein.
Syc is offline  
Thanks
1 User
Old 09/23/2014, 09:43   #19
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
Quote:
Originally Posted by Sycophantic View Post
Hört sich danach an, als würden die Klammern immer noch fehlen.

Das ToString() sollte aber sowieso unnötig sein.
Ups, als das nicht ging hab ich es wieder zurück geändert. Daran lag es!

Neues Problem:
Das Programm loggt sich ein, navigiert zu dem Link, klickt aber nicht auf "Gruppe beitreten"

Der Code bis jetzt:

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
    {
        //string path;

        public Form1()
        {
            
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.GetElementById("email").InnerText = textBox1.Text;
            webBrowser1.Document.GetElementById("pass").InnerText = textBox2.Text;

            label4.Text = "Login..";
            webBrowser1.Document.GetElementById("loginbutton").InvokeMember("click");
            Thread.Sleep(1000);
            label4.Text = "Navigiere zur Gruppe..";
            webBrowser1.Navigate("https://www.facebook.com/groups/268154400034569/?fref=ts");

            label4.Text = "Tritt der Gruppe bei..";
            Thread.Sleep(1000);
            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"));
                }
            }

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://de-de.facebook.com");
            Thread.Sleep(2000);        
        }

        private void button2_Click(object sender, EventArgs e)
        {
            
            //openFileDialog1.ShowDialog();
            //path = openFileDialog1.FileName;
            //textBox3.Text = path;

        }
    }
}
#Saiirex is offline  
Old 09/23/2014, 09:52   #20
 
elite*gold: 0
Join Date: Sep 2014
Posts: 896
Received Thanks: 100
Mach nen Extrabutton für Gruppe beitreten, die Funktion zum drücken des "Gruppe beitreten"-Buttons wird schon während dem laden der Seite ausgeführt = er "drückt" einen noch nicht existent knopf.
Ammy' is offline  
Old 09/23/2014, 09:57   #21
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
Ich würde das gerne automatisieren.
Wenn ich warten würde bis sich der Browser vollständig geladen hat, würde nix passieren, weil der Browser nie fertig wird.

Habe mal:

Code:
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
{
MessageBox.Show("Fertig");
}
probiert. Die MessageBox ist nie aufgegangen.
#Saiirex is offline  
Old 09/23/2014, 10:00   #22
 
elite*gold: 0
Join Date: Sep 2014
Posts: 896
Received Thanks: 100
Also du machst ne neue Funktion die das Gruppe Beitreten ausführt. Dann nimmst nen Timer und prüfst bei jedem tick ob der Webbrowser fertig geladen hat. Wenn ja dann führst du die Funktio aus, wenn nicht eben nicht. Und den Timer dann einfach unendlich loopen lassen / bis er das erste mal der Gruppe beigetreten ist.


Edit: Zu deinem MessageBox-Versuch

Ich versuchs mal relativ einfach zu erklären:

Also die Funktion geht von oben nach unten deinen Code durch und führt eben diesen aus. Wenn du jetzt den Webbrowser lädst und danach den Readycheck machst, wird er klar sagen "Ne is net ready" weil der Code ausgeführt wird aber nicht wartet weil der Code nur sagt "navigiere zu" und nicht "navigiere und warte bis fertig" :P
Ammy' is offline  
Thanks
1 User
Old 09/23/2014, 10:08   #23
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
Quote:
Originally Posted by Ammy' View Post
Also du machst ne neue Funktion die das Gruppe Beitreten ausführt. Dann nimmst nen Timer und prüfst bei jedem tick ob der Webbrowser fertig geladen hat. Wenn ja dann führst du die Funktio aus, wenn nicht eben nicht. Und den Timer dann einfach unendlich loopen lassen / bis er das erste mal der Gruppe beigetreten ist.
Okay das überfordert mich jetzt. Soweit bin ich noch nicht mit C# .

Kannst du vlt ein Codebeispiel posten?
#Saiirex is offline  
Old 09/23/2014, 10:14   #24
 
elite*gold: 0
Join Date: Sep 2014
Posts: 896
Received Thanks: 100
Code:
        
private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.GetElementById("email").InnerText = textBox1.Text;
            webBrowser1.Document.GetElementById("pass").InnerText = textBox2.Text;

            label4.Text = "Login..";
            webBrowser1.Document.GetElementById("loginbutton").InvokeMember("click");
            Thread.Sleep(1000);
            label4.Text = "Navigiere zur Gruppe..";
            webBrowser1.Navigate("https://www.facebook.com/groups/268154400034569/?fref=ts");

            label4.Text = "Tritt der Gruppe bei..";
            Thread.Sleep(1000);
           timer1.Enabled = true;

        }

 private void timer1_Tick(object sender, EventArgs e)
        {
            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
            {
                timer1.Enabled = false;
                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"));
                    }
                }
            }
        }
Sollte gehen o: Nicht vergessen nen Timer auf die Form zu ziehen / einen per Code zu erstellen
Ammy' is offline  
Old 09/23/2014, 10:18   #25
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
Quote:
Originally Posted by Ammy' View Post
Code:
        
private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.GetElementById("email").InnerText = textBox1.Text;
            webBrowser1.Document.GetElementById("pass").InnerText = textBox2.Text;

            label4.Text = "Login..";
            webBrowser1.Document.GetElementById("loginbutton").InvokeMember("click");
            Thread.Sleep(1000);
            label4.Text = "Navigiere zur Gruppe..";
            webBrowser1.Navigate("https://www.facebook.com/groups/268154400034569/?fref=ts");

            label4.Text = "Tritt der Gruppe bei..";
            Thread.Sleep(1000);
           timer1.Enabled = true;

        }

 private void timer1_Tick(object sender, EventArgs e)
        {
            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
            {
                timer1.Enabled = false;
                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"));
                    }
                }
            }
        }
Sollte gehen o: Nicht vergessen nen Timer auf die Form zu ziehen / einen per Code zu erstellen
Macht der Timer dann "Thread.Sleep" überflüssig?
#Saiirex is offline  
Old 09/23/2014, 10:19   #26
 
elite*gold: 0
Join Date: Sep 2014
Posts: 896
Received Thanks: 100
Ja. Hab nur dein Code gecopyed deshalb vergessen das raus zu nehmen

An die Procoder: Bin selbst noch neu also falls was unsauber seien sollte bitte mit korrigieren :P
Ammy' is offline  
Old 09/23/2014, 10:24   #27
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
Es funktioniert nicht.. Der Tritt der Gruppe nicht bei. Ich glaube weil , "WebBrowser.ReadyState.Complete" nie eintritt.
#Saiirex is offline  
Old 09/23/2014, 10:28   #28
 
elite*gold: 0
Join Date: Sep 2014
Posts: 896
Received Thanks: 100
Versuchs mal mit == WebBrowserReadyState.Loaded und nicht complete

(keine Garantie, hab 0 Ahnung vom WebBrowser)
Ammy' is offline  
Old 09/23/2014, 10:31   #29
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
Quote:
Originally Posted by Ammy' View Post
Versuchs mal mit == WebBrowserReadyState.Loaded und nicht complete

(keine Garantie, hab 0 Ahnung vom WebBrowser)
Nope, es tut sich nichts.
#Saiirex is offline  
Old 09/23/2014, 10:35   #30
 
elite*gold: 0
Join Date: Sep 2014
Posts: 896
Received Thanks: 100
Grad was gefunden



diese Methode führst du dann im TimerTick aus also

Code:
 private void timer1_Tick(object sender, EventArgs e)
  {
     webBrowser1_DocumentCompleted();
  }
und bei der Methode sieht das dann so aus

Code:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
     //This line is so you only do the event once   
     if (e.Url != webBrowser1.Url) 
       {
         return;
       }

    else
      {        
                timer1.Enabled = false;
                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"));
                    }
                }      
      }


    }

Ps: meine Formatierung sieht kacke aus ich weiß ^^
Ammy' is offline  
Reply


Similar Threads Similar Threads
VB.net webbrowser statt in IE in zweitem webbrowser laden :((
07/19/2013 - .NET Languages - 2 Replies
Hallo alle zusammen. Mein Webbrowser klickt auf einen button, und dieser öffnet eine neue seite, die im IE geöffnet wird. Doch statt sie im IE zu öffnen, soll er sie in einem zweitem webbrowser auf einer anderen form öffnen.. Das problem dabei ist, dass ich soweit ich weiß nicht einfach den link nehmen kann und mit webbrowser.navigate dorthin kann, weil ich dabei eingeloggt bleiben muss. Ich weiß dass das Thema schon oft behandelt wurde, sowohl hier als auch woanderas, aber diese ganzen...
[Webbrowser] In Do Loop warten bis Webbrowser fertig geladen hat
02/21/2013 - .NET Languages - 3 Replies
Ich hab hier folgenden Code: With New StreamReader(path) Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete End While Dim question As String = .ReadLine RichTextBox1.Text = question WebBrowser1.Document.GetElementById("profile- input").SetAttribute("value", question)
VB.Webbrowser
06/07/2012 - .NET Languages - 8 Replies
Hallo, ich habe viele Foren durchforstet und keiner konnte mir eine richtige Erklärung bzw hinweis geben & hoffe mir kann hier jmd weiterhelfen. Ich möchte mich in der Form einloggen & navigieren. http://img5.fotos-hochladen.net/uploads/vbcwa62zi 0dr.png
Webbrowser
06/02/2011 - General Coding - 13 Replies
Hallo ich hab einen Webbrowser und will da nun so machen dass er die passwörter speichert. Wie geht das?
NDS Webbrowser
10/08/2008 - Consoles - 4 Replies
Hallo liebe community habe da ein kleines Problem Der nds webbrowser(der richtige) läuft nicht richtig bei meiner supercard da steht immer ich muss ne ram erweiterung in slot 2 reintun aber ich habe keins da wollt ich fragen ob man nicht die micro sd karte als ram erweiterung benutzen könnte . Gibt es überhaupt gute homebrew browser für den ds (kein ds organize ) mfg Fatal3ty



All times are GMT +1. The time now is 21:38.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.