Benutzer mit den meisten Antworten
IE Automatisierung Login auf Webseite Problematisch

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
Antworten
-
Hallo Tobias,
das muss funktionieren. Ich habe mir das mal angesehen. Du hast auf der Seite drei Formulare.
login
top_search_form
coAnmeldenVersuche 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 --
- Als Antwort markiert Tobias Girndt Montag, 4. Juni 2012 14:56
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 --
-
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
- Bearbeitet Tobias Girndt Montag, 4. Juni 2012 07:54
-
Hallo Tobias,
das muss funktionieren. Ich habe mir das mal angesehen. Du hast auf der Seite drei Formulare.
login
top_search_form
coAnmeldenVersuche 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 --
- Als Antwort markiert Tobias Girndt Montag, 4. Juni 2012 14:56