Ich versuche, das Anmelden und Sammeln von Daten von einer bestimmten Site zu automatisieren. Hier ist mein CodeDer Aufruf der Methode ist fehlgeschlagen, weil [System .__ ComObject] keine Methode mit dem Namen "Click" enthält.
$ie = New-Object -ComObject InternetExplorer.Application;
$ie.Visible = $true;
$ie.Navigate("somesite");
while($ie.busy){Start-Sleep 1;}
while($ie.ReadyState -ne 4){Start-Sleep 1;}
if($ie.Document -ne $null)
{
$usertextbox = $ie.Document.GetElementById('username');
$passtextbox = $ie.Document.GetElementById('password');
$usertextbox.value = "$user";
$passtextbox.value = "$pass";
$okbutton = $ie.Document.getElementsByName('submit')[0];
$okbutton.Click($false);
}
Leider bekomme ich folgende Fehlermeldung
Method invocation failed because [System.__ComObject] does not contain a method named 'Click'.
At line:17 char:5
+ $okbutton.Click($false);
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Click:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MethodNotFound
Sie HTML-Code des Elements sehen kann ich unter
<input name="submit" accesskey="l" value="Login" tabindex="4" type="submit" />
Wenn ich gm Verwendung auf dem $ okbutton Ich bekomme diese
PS C:\Windows\system32> $okbutton | gm
TypeName: System.__ComObject#{3050f57d-98b5-11cf-bb82-00aa00bdce0b}
Name MemberType Definition
---- ---------- ----------
addBehavior Method int addBehavior (string, Variant)
addFilter Method void addFilter (IUnknown)
appendChild Method IHTMLDOMNode appendChild (IHTMLDOMNode)
applyElement Method IHTMLElement applyElement (IHTMLElement, string)
attachEvent Method bool attachEvent (string, IDispatch)
blur Method void blur()
clearAttributes Method void clearAttributes()
click Method void click()
Soweit ich sehe, ist dieses Element definitiv und muss click() Methode enthalten. Aber aus irgendeinem Grund kann ich es immer noch nicht nennen. Kann mir jemand diesbezüglich etwas sagen?
Posting als Kommentar und nicht als Antwort, weil ich noch keine COM-Automatisierung mit PoSh machen muss, aber ich bin mir ziemlich sicher, dass es nur ein Tippfehler ist. In Ihrem Code rufen Sie die Methode .Click() auf. Die Fehlermeldung bezieht sich auf 'Klicken' und Ihr Aufruf zu 'Get-Member' Spells 'Klick'. Sieh den Unterschied? –
Versuchte Klicken, aber das half nicht. Btw gm zeigt void click(), was soviel wie Click() bedeutet – KennyMacCormik