PowerShell Button klicken per Powershell

Lost_Byte

Admiral
Dabei seit
Mai 2007
Beiträge
7.978
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
 

r0b0t

Ensign
Dabei seit
Juni 2010
Beiträge
205
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.

 

Lost_Byte

Admiral
Ersteller dieses Themas
Dabei seit
Mai 2007
Beiträge
7.978
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
 

r0b0t

Ensign
Dabei seit
Juni 2010
Beiträge
205
Sieht so aus, als sei $IE.Document == null. Dann ist das Dokument wohl nicht geladen. Die Methode heißt
getElementByID ohne 's'.
 

RalphS

Lt. Commander
Dabei seit
Feb. 2015
Beiträge
1.478
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).
 

Lost_Byte

Admiral
Ersteller dieses Themas
Dabei seit
Mai 2007
Beiträge
7.978
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.
 
Top