1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

c# Webbrowser login erkennungsproblem

Dieses Thema im Forum "Support & Discussion" wurde erstellt von ihateadmins, 23. Dezember 2018.

  1. ihateadmins

    ihateadmins New Member

    Registriert seit:
    23. Dezember 2018
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Geschlecht:
    männlich
    Hallo, ich habe ein Problem mit meinem Webbrowser, der erkennt nicht das ich mich angemeldet habe/anmelde, wahrscheinlich da es im selben moment wo es sich anmelden will es überprüft und da es noch nicht angemeldet ist..
    https://github.com/ihateadmins/freenom-dns-updater

    Form1.cs
    btn_change_Click(): calls login(website);

    if (rawHtml.Contains("DNS MANAGEMENT for " + domain) || webBrowser1.Url == new Uri("https://my.freenom.com/clientarea.php?managedns="+ domain +"&domainid=" + domainid) ) is never getting true

    ich freue mich über jede hilfe
     
  2. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    72
    Zustimmungen:
    30
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Hallo ihateadmins, und herzlich willkommen in unserem kleinen Forum.
    Vlt liegt es wirklich daran, dass die Abfrage machst, wenn der Webbrowser noch im Login-Prozess ist.

    Wie wäre es, wenn du nach dem Login noch mal wartest:
    Code (Text):

    while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
    {
                Application.DoEvents();
    }
     
    Diese Webbrowser Komponenten basieren soweit ich weiß auf dem Internet Explorer. Leider nicht gerade die beste Grundlage für einen soliden Bot.
    Liebe Grüße Krusty
     
  3. ihateadmins

    ihateadmins New Member

    Registriert seit:
    23. Dezember 2018
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Geschlecht:
    männlich
    element.InvokeMember("click");
    while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
    {
    Application.DoEvents();
    }

    Danke für die Antwort. Das habe ich versucht aber da bereits eine Seite geladen ist gibt es in der Abfrage WebBrowserReadyState.Complete aus. Der invoke an sich beansprucht ein paar Sekunden.
     
  4. source++

    source++ New Member

    Registriert seit:
    3. Juli 2017
    Beiträge:
    25
    Zustimmungen:
    23
    Punkte für Erfolge:
    3
    Geschlecht:
    männlich
    Als erstes würde ich dir den Gecko Browser empfehlen, die Gecko Engine wird z.B. vom Firefox verwendet und ist deutlich besser als der Internet Explorer der dir vom Visual Studio angeboten wird.

    Denn wie krusty schon sagte, der Internet Explorer ist keine gute Grundlage für einen Bot (viel zu langsam, Sicherheitslücken ohne Ende, veraltete Technologien).

    Aber gut musst du wissen, nun zu deinem Problem. Bei einem Click Event funktioniert die Readystate Methode nicht! Am einfachsten umgeht man das Problem mit einem Timer. Das kann z.B. so aussehen:
    Code (Text):
    myElement.Invoke("click");

    Timer wait = new Timer();
    wait.Interval = 2500; // Wartezeit in MS
    wait.Tick += (s, args) =>
    {
        // Hier kommt rein was nach dem Warten getan werden soll
        deineMethode();
        ////////////////////////////////////////////////////////
        wait.Enabled = false;
    };
    wait.Enabled = true;
    Der Kreativität sind keine Grenzen gesetzt, du kannst das auch anders lösen aber das große Stichwort heißt Timer.

    Ps: Hier habe ich mal erklärt wie man den Gecko Browser verwendet:
    https://www.codebot.de/wiki/c-tutorial-browser-bot-erstellen-fur-anfanger/
     
    Zuletzt bearbeitet: 28. Dezember 2018
    krusty gefällt das.

Diese Seite empfehlen

Die Seite wird geladen...