Webbrowser - Wie aktualisieren?

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von DFellow.

    Webbrowser - Wie aktualisieren?

    Moin zusammen,
    ich habe mich in ein ganz neuse Gebiet vorgewagt und hab hier eine kleine Frage an der ich seit gestern dran sitze:
    Ich habe eine Webseite die beim Start des Programms in den Webbrowser1 geladen wird. Auf dieser Webseite befindet sich eine WebForm, welche ausgefüllt und abgeschickt wird. Bis hier hin kein Problem. Weil mich das Form aber auf eine Seite weiterleitet, auf die ich nicht möchte rufe ich direkt danach ein .Navigate("URL").
    Auf der kommenden Seite, auf diese ich zuvor navigiere möchte ich weiterhin ein formular ausfüllen und so weiter...
    Mein Problem:
    Wenn das 1. WebForm ausgefüllt, abgeschickt und auf die Folge Seite navigiert ist, muss ich zurück auf das Form, damit mein Webbrowser die Daten aktualiesiert?!?
    Kann mir hier jemand helfen?
    P.S. Ein Code Beispiel

    VB.NET-Quellcode

    1. WebBrowser1.Document.GetElementById("username").InnerText = "Test"
    2. WebBrowser1.Document.GetElementById("password").InnerText = "Test"
    3. WebBrowser1.Document.GetElementById("agb").DomElement.checked = True
    4. WebBrowser1.Document.GetElementById("login").DomElement.click()
    5. Thread.Sleep(1000)
    6. WebBrowser1.Navigate("http://www.xyz.de/index.php")

    Danach steht in webbrowser1.document.body aber immer noch die daten von xyz.de/login.php und nicht die von Index.php...
    Danke euch vielmals & Gruß
    DFellow
    Hehe, ja ich weiß ist ein wenig verwirrend.

    Ich versuchs nochmal mit anderen Worten:

    Ich habe ein Formular in meinem Programm. Darin ist ein Webbrowser1 und ein Button1. Beim Start des Programms lädt Webbrowser1 automatisch die Seite www.xyz.de/login.php

    Auf dieser Seite findet sich ein Webformular welches ich mit folgenden Code ausfülle und erfolgreich absende:

    VB.NET-Quellcode

    1. WebBrowser1.Document.GetElementById("username").InnerText = "Test"
    2. WebBrowser1.Document.GetElementById("password").InnerText = "Test"
    3. WebBrowser1.Document.GetElementById("agb").DomElement.checked = True
    4. WebBrowser1.Document.GetElementById("login").DomElement.click()


    Danach leitet mich die Seite www.xyz.de/login.php auf die Seite www.xyz.de/werbung.php. In meinen Webbrowser1.document.body stehen noch die Daten von der login.php.

    Wenn ich dann per

    VB.NET-Quellcode

    1. Thread.Sleep(1000)
    2. WebBrowser1.Navigate("http://www.xyz.de/index.php")


    auf die folgende Seite navigieren möchte funktioniert das auch. Nur leider steht dann im Webbrowser1.document.body noch die Daten von der login.php.
    Erst wenn ich den Sub Button1_click verlasse und zurück zu meiner VB-Form kehre ändert das Webbrowser1.document.body Elemt seinen Inhalt.

    Da scheiterst dann bei mir, da ich gerne noch in dem Button Sub weitern Code ausführen möchte, ohne auf das VB-Form zurück zu kehren.

    Auch viel mir auf, dass jedesmal bevor ich auf das VB-From zurückkehre folgender Code ausgeführt wird:

    VB.NET-Quellcode

    1. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
    2. End Sub


    Danach aktualisiert sich das Webbrowser1.document.body Element.

    Ich hoffe es war nun verständlicher...

    Viele Grüße
    DFellow
    wenn du alles einträgst und bestätigst und danach den Webbrowser navigierst wird das alles nicht gespeichert vllt mussst du einfach warten bis der browser fertig ist zu laden:

    VB.NET-Quellcode

    1. Do Until WebBrowser1.ReadyState <> ReadyState.Complete
    2. Application.DoEvents()
    3. Loop