PowerShell Button klicken per Powershell

Lost_Byte

Admiral
Dabei seit
Mai 2007
Beiträge
8.037
Hi,

ich versuche einen Button auf einer Intranetseite zu klicken. Ich bekomme immer die Meldung:

You cannot call a method on a null-valued expression.
At line:6 char:1
  • $IE.Document.getElementsByClassName('btn btn-primary btn-xs')
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ( : ) [ ], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Der entsprechende Powershell Befehl
Code:
$IE = New-Object -com internetexplorer.application
$IE.visible = $true
do{sleep 1} While ($IE.busy)
$IE.navigate("Intranetseite")
do{sleep 1} While ($IE.busy)
$IE.Document.getElementsByClassName('btn btn-primary btn-xs')

Der Button
Code:
 <button class="btn btn-primary btn-xs" id="endnow-individualID" type="button" data-toggle="modal" data-bind="visible: ev.AllowEndNow, click: $root.endBookingNow.bind(ev), attr: { id: 'endnow-' + ev.Id }">
                    End Now
                </button>

Eigentlich wollte ich auch direkt mit dem folgenden Code direkt den Button klicken, aber da bekomme ich die gleiche Fehlermeldung, sodass ich erst einmal versuche herauszufinden, ob Powershell irgendwie drauf zugreifen kann.
$Link = $ie.Document.getElementsByClassName("btn btn-primary btn-xs") | where-object {$_.type -eq "endnow-"}
$Link.click()


Habt ihr eine Idee, woran das liegen kann?

Danke sehr und viele Grüße
 
getElementsByClassName liefert ggf. mehrere gefundene Elemente zurück oder auch gar keins. In deinem Fall hat der Button nicht die class "btn btn-primary btn-xs" sondern drei classes "btn", "btn-primary" und "btn-xs". Deine Suche findet also nix. Versuchs mal mit getElementById und der id="endnow-individualID", die sollte eindeutig sein.

 
Mit der ID bekomme ich noch immer den gleichen Fehler

Code:
>> $IE.Document.getElementsByID('endnow-123456789')
You cannot call a method on a null-valued expression.
At line:6 char:1
+ $IE.Document.getElementsByID('endnow-123456789')
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 
Sieht so aus, als sei $IE.Document == null. Dann ist das Dokument wohl nicht geladen. Die Methode heißt
getElementByID ohne 's'.
 
Sind wir sicher, daß wir mit PS auf das DOM der HTML-Seite zugreifen können? 😕

Das wirst Du irgendwie anders lösen müssen, entweder direkt im Browser oder vielleicht als Applikation (.hta).
 
Sicher bin ich mir bei den Zugriffsmöglichkeiten leider nicht. Ist ein Firmenrechner, bei dem ich nur sehr eingeschränkte Rechte habe. Daher klappt auch keine Fremdsoftware.
 
Werbebanner
Zurück
Top