Powershell - Fehler bei der Auswahl eines Feldes im IE
Ich hatte vor einem halben Jahr schonmal angefangen den in der c't 4/10 abgedruckten Artikel "Autopiloten fürs Web" durchzuarbeiten.
Ziel war es per PS meine e-Plus Rechnungen automatisiert herunterzuladen.
Nun habe ich damals aber bei einem Fehler aufgehört und mich nu wieder drangegeben, komme aber nicht weiter.
Als Unterbau dienten mir ein Win7Ult x64 sowie Win7Pro x86.
Das Script sieht wie folgt aus:
--- Snipp ---
--- Snapp ---
den folgenden Rest habe ich jetzt erstMal weggelassen ...
Nun bleibe ich nämlich dummerweise immer an den Zeilen zur Benutzernamen und Passwort Eingabe hängen. Ich kann
oder
verwenden, als Anwtwort bekomme ich immer
bzw. bei Verwendung von
natürlich
Es sit hierbei egal ob ich das script in der ISE ausführen lasse oder an der Befehlseingabe reinkopiere.
Nun gibt es ein Script von jemand anderem, gepostet auf im heise-Bereich dazu, angepasst für e-plus, allerdings bringt mich weder dessen Lektüre auch nicht weiter, beim Start von meinem System bleibe ich mit dessen Script and er gleichen Stelle hängen.
Google hilft mir leider auch nicht weiter.
Statt der Anführungszeichen hatte ich auch mal erfolglos Hochkomma benutzt.
Vllt. hat jemand einen Geistesblitz oder ebenfalls dieses oder ein ähnliches Script gebaut. Über Hilfe wäre ich dankbar.
Grüße
Ziel war es per PS meine e-Plus Rechnungen automatisiert herunterzuladen.
Nun habe ich damals aber bei einem Fehler aufgehört und mich nu wieder drangegeben, komme aber nicht weiter.
Als Unterbau dienten mir ein Win7Ult x64 sowie Win7Pro x86.
Das Script sieht wie folgt aus:
--- Snipp ---
#ruft den IE auf
$ie=New-Object -comobject InternetExplorer.Application
#true macht den IE sichtbar
$ie.visible=$true
#Aufruf der Login Seite
$ie.Navigate("https://www.eplus.de/login/login.asp")
#WarteZeit, damit der IE Zeit zum starten hat
while($ie.busy){Start-Sleep 10}
#Eingabefeld für den Benutzernamen befüllen
$ie.Document.getElementById("IDToken10L").value="BENUTZERNAME"
#Eingabefeld für das Passwort befüllen
$ie.Document.getElementById("IDToken20L").value="PASSWORT"
$ie.document.getElementsByTagName("img") | foreach{
if($_.alt -eq "Jetzt anmelden"){
$_.Click()
}
}
den folgenden Rest habe ich jetzt erstMal weggelassen ...
Nun bleibe ich nämlich dummerweise immer an den Zeilen zur Benutzernamen und Passwort Eingabe hängen. Ich kann
getElementById("IDToken10L")
getElementByName("IDToken1")
Die value-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie sicher, dass sie vorhanden ist und festgelegt werden kann.
Bei Zeile:1 Zeichen:43
+ $ie.Document.getElementById("IDToken10L"). <<<< value="BENUTZERNAME"
+ CategoryInfo : InvalidOperation: (value:String) , RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound
getElementByName("IDToken1")
+ $ie.Document.getElementByName("IDToken1"). <<<< value="BENUTZERNAME"
Es sit hierbei egal ob ich das script in der ISE ausführen lasse oder an der Befehlseingabe reinkopiere.
Nun gibt es ein Script von jemand anderem, gepostet auf im heise-Bereich dazu, angepasst für e-plus, allerdings bringt mich weder dessen Lektüre auch nicht weiter, beim Start von meinem System bleibe ich mit dessen Script and er gleichen Stelle hängen.
Google hilft mir leider auch nicht weiter.
Statt der Anführungszeichen hatte ich auch mal erfolglos Hochkomma benutzt.
Vllt. hat jemand einen Geistesblitz oder ebenfalls dieses oder ein ähnliches Script gebaut. Über Hilfe wäre ich dankbar.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 149005
Url: https://administrator.de/forum/powershell-fehler-bei-der-auswahl-eines-feldes-im-ie-149005.html
Ausgedruckt am: 25.12.2024 um 01:12 Uhr
4 Kommentare
Neuester Kommentar
Sonst müsste es ja auch mit Name("IDToken1") funktionieren.
Wie kommst du darauf?
Name ist kein eindeutiges Attribut und eine Funktion
getElementByName
gibt es nicht.Wenn man per Name sucht, dann bekommt man immer eine DOMNodeList und die Funktion ist
getElementsByName
Und natürlich ändert es was: es funktioniert dann (ich habe es ja getestet).