Eine Website aufrufen und mich einloggen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von noob98.

    Eine Website aufrufen und mich einloggen

    Hallo,

    ich würde gerne in meinem Standardbrowser eine Website aufrufen und mich direkt einloggen.
    Ich habe schon ein bisschen gegoogelt und habe folgendes herausgefunden:

    Mit

    VB.NET-Quellcode

    1. WebBrowser1.Show()
    2. WebBrowser1.Navigate("https://unterricht.sh.schulcommsy.de/?cid=1963807")
    Kann ich die Website aufrufen, allerdings nur in dem WebBrowser1 auf meiner Form1.
    Mit

    VB.NET-Quellcode

    1. Process.Start("https://unterricht.sh.schulcommsy.de/?cid=1963807")
    Kann ich die Website aufrufen, aber in meinem ausgewählten Standardbrowser (das will ich).

    Mit

    VB.NET-Quellcode

    1. webbrowser1.Document.GetElementById("user_id").SetAttribute("value", Benutzername)
    2. webbrowser1.Document.GetElementById("password").SetAttribute("value", Kennwort)
    3. webbrowser1.Document.GetElementById("option").InvokeMember("click")

    soll man eigentlich das Feld "user_id" und das Feld "password" auf der Website ausfüllen können und InvokeMember sollte dann auf Einloggen klicken, allerdings würde diese Variante nur im WebBrowser der Form1 funtkionieren, also nicht in Google Chrome (meinem Standardbrowser) und bei mir kommt immer die Error Meldung: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." Und markiert das Ende der drei Zeilen.

    Ich komme leider gerade einfach nicht weiter.


    Mit freundlichem Gruß

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Tja, mittm WebBrowser-Control ist ein (leidlich unzuverlässiger) Weg gegeben, Websites automatisiert aufzurufen, und Eingaben vorzunehmen - wohl auf Basis des InternetExplorers.
    Ob Chrome auch sowas bereitstellt ist mir nicht bekannt.

    Die meisten Websites treffen auch Vorkehrungen dagegen, dass ein Programm sich einloggt - Stichwort "Bot-Abwehr".
    Noch ein paar Punkte meinerseits:

    1. Sofern ein Speichern der Daten durch Chrome nicht ausreichen sollte (weil der Klick dennoch gemacht werden muss), würde ich die Datei lokal speichern und im HTML die Daten fest eingeben. Dazu eine JavaScript OnLoad Methode, die die Anfrage dann an den richtigen Server sendet. Diese lokale Datei kann dann als Lesezeichen im Browser gespeichert und verwendet werden.
    2. Das direkte Bearbeiten von fremden Prozessen ist nicht besonders einfach (Stichwort: Spy++ und Handle IDs bekommen), sofern dies überhaupt möglich ist mit Chrome.
    3. Warum dein Code Fehlerhaft ist: die Inputfelder besitzen keine IDs! Wie man bereits aus der Signatur lesen kann "GetElementById" muss dafür das HTML-Element eine ID Attribute besitzen und das tut es nicht.

    ErfinderDesRades schrieb:

    [...] treffen auch Vorkehrungen dagegen, dass ein Programm sich einloggt - Stichwort "Bot-Abwehr".

    Stimmt zwar, sieht aber noch einem Schulservice aus. Ich gehe nicht davon aus, dass die sowas haben ;)