none
IE Automatisierung Login auf Webseite Problematisch RRS feed

  • Frage

  • Guten Tag Zusammen,

    ich unternehme gerade die ersten Schritte mit PS und habe mich an ein Thema herangewagt, bei dem ich nicht weiter komme.

    Ich will mittels Powershell mich automatisch an einer Webseite anmelden. dazu übergebe ich einen Benutzernamen und ein Kennwort und will dann den Login Button drücken.

    Und hierbei komm ich nicht weiter. hier mal den Anfang den ich schon habe:

    $benutzer="user" # Benutzername
    $passwort="passwort" # Passwort
    
    $ie=New-Object -ComObject InternetExplorer.Application
    $ie.visible = $true
    $ie.silent = $true
    
    $ie.Navigate("https://web.s-investor.de/app/anmelden.htm?INST_ID=0000414")
    while($ie.busy){Start-Sleep 1}
    
    $ie.Document.getElementById( "anmId").value = $benutzer
    $ie.Document.getElementById( "anmPasswort").value = $passwort
    ---->
    
    while( $ie.busy){ Start-Sleep 1}
    An der Stelle des Pfeils hatte ich jetzt das Klicken der Login-Schaltfläche einbauen wollen, aber ich weiß nicht wie. Die Schaltfläche ist eine Grafik und der ist keine ID zugeordnet, sodaß ich aus meinem Verständniss heraus nicht mit $ie.Document.getElementById arbeiten kann. Versuch habe ich auch getElementsByTagName und getElementsByClassName aber auch das funktioniert bei mir nicht.

    Hier der Part aus dem Quelltext der Seite:

    <tr>
       <td>
         <input type="image" class="si_c_forbI" src="/pic/if50/si_c_button_benutzeranmeldung.gif" alt="Benutzer anmelden" height="29" width="201" border="0"/>
       </td>
    </tr>
    
    

    Wer kann mir hier weiter helfen? Im Internet habe ich dazu nichts gefunden, entweder das wurde noch nirgends beschrieben, oder ich hab Fehler beim Suchen gemacht. Vielleicht habt ihr ja den entscheidenden Hinweis.

    Danke

    Tobias

    Freitag, 1. Juni 2012 15:18

Antworten

  • Hallo Tobias,

    das muss funktionieren. Ich habe mir das mal angesehen. Du hast auf der Seite drei Formulare.

    login
    top_search_form
    coAnmelden

    Versuche mal für die Formulare "login" und "coAnmelden" Folgendes:

    $ie.Document.forms | %{if($_.name -eq "login"){$_.submit()}}

    Mal sehen, ob dass klappt.

    Viele Grüße

    Frank


    -- Frank Röder http://blog.iteach-online.de --

    Montag, 4. Juni 2012 09:17

Alle Antworten

  • Hallo Tobias,

    Du hast einen kleinen Denkfehler dabei. Du musst nicht dem Button erklären, dass er angeklickt wurde, sondern dem Formular, das es gesendet wurde. Das könntest Du z.B. so realisieren:

    $ie.Document.Forms | %{$_.submit()}

    Viele Grüße

    Frank


    -- Frank Röder http://blog.iteach-online.de --

    Samstag, 2. Juni 2012 11:50
  • Guten Morgen,

    Frank, Dein Vorschlag hat nicht funktioniert. Ich werde dann wieder auf die gleiche Seite "geworfen" und die Felder sind wieder leer.

    Folgende Fehlermeldungen dabei:

    Ausnahme beim Aufrufen von "submit" mit 0 Argument(en):  "Zugriff verweigert (Ausnahme von HRESULT: 0
    x80070005 (E_ACCESSDENIED))"

    und

    Fehler beim Aufrufen der Methode, da [System.__ComObject] keine Methode mit dem Namen "submit" enthäl
    t.

    Gruß

    Tobias


    Montag, 4. Juni 2012 06:59
  • Hallo Tobias,

    das muss funktionieren. Ich habe mir das mal angesehen. Du hast auf der Seite drei Formulare.

    login
    top_search_form
    coAnmelden

    Versuche mal für die Formulare "login" und "coAnmelden" Folgendes:

    $ie.Document.forms | %{if($_.name -eq "login"){$_.submit()}}

    Mal sehen, ob dass klappt.

    Viele Grüße

    Frank


    -- Frank Röder http://blog.iteach-online.de --

    Montag, 4. Juni 2012 09:17
  • Hey, ja das war es, deine Zeile hat mit dem Formular coAnmelden funktioniert.

    Vielen Dank,

    jetzt gehts weiter

    Tobias

    Montag, 4. Juni 2012 09:27