WebBrowser mit URL öffnen und anmelden

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Lokeib.

    WebBrowser mit URL öffnen und anmelden

    Ich möchte von einem VB Programm aus den IExplorer mit einer URL starten.

    Das funktioniert problemlos.

    Da ist aber noch eine Anmeldeseite davor.

    Wie kann ich dafür sorgen, dass mein Programm sich anmeldet,
    und dann gleich die darauf folgende Seite angezeigt wird.
    Wie gesagt, ich möchte, dass der IExplorer geöffnet wird, und nicht ein
    WebBrowserControl.

    Ich dachte mir, dass ich die Anmeldung tatsächlich innerhalb des Programms
    mit einem Webbrowsercontrol erledige, und dann die SessionID, oder was
    auch immer da geliefert wird, als URL dem IExplorer schicke.

    Macht man das so, oder geht es einfacher?

    VB.NET-Quellcode

    1. Dim username As String = "user"
    2. Dim password As String = "12345"
    3. Dim ND = WebBrowser1.Document.GetElementsByTagName("input")
    4. For Each item As HtmlElement In ND
    5. Select Case item.GetAttribute("name")
    6. Case "username"
    7. item.InnerText = username
    8. Case "password"
    9. item.InnerText = password
    10. Case "LogIn"
    11. item.InvokeMember("click")
    12. End Select
    13. Next


    "name" ließe sich zB. auch durch "value" ersetzen.

    gruß ponch0
    Leider kann ich es hier nicht testen, erst Morgen.

    Aber wo wird da der InternetExplorer aufgerufen?

    Das ist doch jetzt nur eine Anmeldung mit dem WebBrowserControl
    innerhalb des Programms. Ich möchte doch anschließend
    nach dem Anmelden den IExplorer mit der folgenden
    Seite öffnen. Ich muss also noch meine Anmeldedaten an
    den IE übertragen.

    Lightsource schrieb:

    Leider kann ich es hier nicht testen, erst Morgen.

    Aber wo wird da der InternetExplorer aufgerufen?

    Das ist doch jetzt nur eine Anmeldung mit dem WebBrowserControl
    innerhalb des Programms. Ich möchte doch anschließend
    nach dem Anmelden den IExplorer mit der folgenden
    Seite öffnen. Ich muss also noch meine Anmeldedaten an
    den IE übertragen.


    Benutze ganz einfach den Webbrowser in deinem Programm? Das ist doch die Engine des IEs oder überlass die Steuerung des Browsers direkt deinem Programm. So musst du nichts übertragen. Nur die Klicks und so imitieren
    Ich habe jetzt erst mal den Vorschlag von Ponch0 umgesetzt.
    Natürlich bin ich gleich in seine ausgelegte Falle getappt... :rolleyes:

    Wen's interessiert: Man muss warten, bis die Seite vollständig
    geladen ist, bevor man auf deren Elemente zugreifen kann.
    Sonst ist das Dokument noch nicht als zugreifbares Objekt
    vorhanden.

    Ansonsten hat es jetzt geklappt.

    Jetzt kam ich noch an ein weiteres Problem. Eine Seite die
    ich bearbeiten will, enthält viel JavaScript mit Formularen,
    in die man wieder etwas eingeben muss.

    Wenn ich diese Seite in den WebBrowser lade, erhalte ich
    eigentlich eine andere Seite (Sie hat einen anderen Titel)
    Und ich finde meine Tags nicht. Dargestellt wird aber die
    richtige.
    Wie kann das sein? Ich habe jetzt noch nicht speziell danach
    gesucht, aber könnte es sich um ein anderes Frame handeln?

    (Zur Info: Es handelt sich um Intranet.Seiten , die ich hier nicht
    veröffentlichen kann)

    Lightsource schrieb:

    Ich habe jetzt erst mal den Vorschlag von Ponch0 umgesetzt.
    Natürlich bin ich gleich in seine ausgelegte Falle getappt... :rolleyes:

    Wen's interessiert: Man muss warten, bis die Seite vollständig
    geladen ist, bevor man auf deren Elemente zugreifen kann.
    Sonst ist das Dokument noch nicht als zugreifbares Objekt
    vorhanden.

    Ansonsten hat es jetzt geklappt.

    Jetzt kam ich noch an ein weiteres Problem. Eine Seite die
    ich bearbeiten will, enthält viel JavaScript mit Formularen,
    in die man wieder etwas eingeben muss.

    Wenn ich diese Seite in den WebBrowser lade, erhalte ich
    eigentlich eine andere Seite (Sie hat einen anderen Titel)
    Und ich finde meine Tags nicht. Dargestellt wird aber die
    richtige.
    Wie kann das sein? Ich habe jetzt noch nicht speziell danach
    gesucht, aber könnte es sich um ein anderes Frame handeln?

    (Zur Info: Es handelt sich um Intranet.Seiten , die ich hier nicht
    veröffentlichen kann)


    Hi,
    es gibt die Möglichkeit auch auf Frames in der Seite zuzugreifen.

    Hier als Beispiel für die Eingabe in eine Textbox welche sich im iFrame befindet.

    VB.NET-Quellcode

    1. Dim text as String = "Ein Beispieltext"
    2. WebBrowser1.Document.Window.Frames("iframe").Document.Body.InnerHtml = text


    Falls es das nicht ist, was du suchst hab ich die Frage missverstanden

    ponch0