Powershell - klicken Sie auf einen href-link in div
Ich bin sicher, dies müssen wurde beantwortet vor, aber ich denke, ich weiß einfach nicht, was ich sollte mit meiner Suche Terminologie.
Ich versuche, powershell, klicken Sie auf ein einfaches "a href" link. Aber die powershell-Beispiele, die ich gefunden habe, für das klicken auf die Dinge so weit sind, verwenden Sie die Tasten. wenn ich versuche, zu schreiben, die button-Klick-Skripte auf den link zu klicken, statt, ich bin immer ein "kann Man nicht nennen eine Methode eines null-Wert Ausdruck" Fehlermeldung.
Quelle für den link, den ich klicken möchten:
<div id="reportTreer1r3" style="padding-left:32px;" uid="2.-83016" nowrap
class="treeNode" onClick="reportTree.onSelect('r1r3');" onDblClick="reportTree.onDblSelect('r1r3');
" BP_REPORT_ID="-83016" reportType="report" isRemovable="false">
<nobr>
<a href="#r1r3" onClick="return false;" onKeyDown="reportTree.onKeyDown(this);">
<span>
<label class="hidden-label"> Tree level 1, 4 of 4. </label>
<span>Adherence Summary</span>
</span>
<label name="SelectInfo" class="hidden-label"></label>
</a>
</nobr>
</div>
Leider den link noch nicht gegeben wurde, eine element-id des eigenen ich kann also nicht einfach "getElementByID" drauf, stattdessen habe ich versucht, ein paar Dinge entlang der Linien von...
$link = $doc.getElementsByTagName('a') | Where-Object {$_.href -eq '#r1r3'}
$link.click()
... aber keiner scheint es zu funktionieren.
Irgendwelche Vorschläge würde sehr geschätzt!
InformationsquelleAutor CactusCake | 2014-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke das Thema hier ist nicht ganz dein code, es ist, was Sie verwenden, wählen Sie den entsprechenden link. Sie müssen die Flucht der
#
mit ernstem Charakter". Auch Sie verwenden möchten -match statt -eq, da $_.href enthält mehr als nur #r1r3, es endet nur in diesem.Sollte für Sie arbeiten.
Edit: Hier ist was ich getan habe. Ich speicherte Ihre Beispiel-HTML in ein Dokument test.html auf meinem desktop, weil ich bin ziemlich faul. Dann habe ich:
Nun, die spuckt hinten eine Tonne von Zeug, so werden Sie mir verzeihen, wenn ich nicht fügen Sie es alles hier. Aber dann habe ich versucht die Where-bit:
...und wieder nichts. Ähm... WTF. Oh, warten Sie, ich verwendet, einzelne Zitate nicht in Anführungszeichen gesetzt werden. Hoppla, versuchen Sie es erneut mit -match "`#r1r3" und gehen die Dinge viel besser.
Das ist das ticket! Jetzt habe ich ein Objekt, dass ich arbeiten kann. Ja, sicher, einige der Eigenschaften sind True oder False, aber es gibt ein paar andere Dinge wie InnerHTML, InnerText, OuterHTML, OuterText... nun, eine ganze Menge. Plus, wenn ich Pfeife, die zu
|GM
es listet alle Eigenschaften und Methoden für das Objekt... einschließlichClick
.So, ich denke, das eigentliche Problem ist, dass ich kopiert und eingefügt, den code und, nur verändert es ein wenig, ich wollte eigentlich nicht bemerken, die ' vs " - Problem. Versuchen Sie es erneut mit:
Lektion gelernt, für meinen Teil, sorry für die Verwirrung.
write-host $link
um zu sehen, ob alles wurde aufgefüllt - es ist die Rückkehr einer Reihe von true/false-Ergebnisse... klingt das Recht? Ich dachte, dass es zurückkehren würde, ein wenig mehr detail für jedes element als nur true oder false. Gibt es eine Möglichkeit, ich kann es echo alle verfügbaren href ' s?Nein, das klingt nicht richtig. Geben Sie mir eine minute und ich werde zu aktualisieren, meine Antwort zu reflektieren, was ich sah.
Funktioniert immer noch nicht. Obwohl, ich glaube nicht, dass es etwas falsch mit dem code, den Sie vorgeschlagen haben, ich denke, Sie haben etwas zu tun mit der Struktur der Seite, die ich versuche, klicken Sie auf den link. Das html-snippet, das ich angegeben habe war nur ein Abschnitt der source-code aus einer viel größeren Gesamt-Dokument mit mehreren verschachtelten divs und ein paar iframes, so dass ich denke, wo ich $ie.Dokument.bekommen-es ist vielleicht nicht spezifisch genug, um auf die richtige verschachtelte Abschnitt vielleicht? Danke für den Versuch, aber ich Schätze das Niveau der Details, die Sie in Ihre Antwort.
InformationsquelleAutor TheMadTechnician
Wenn Sie einen link (href) wird innen auf Rahmen, die Sie verwenden würden:
InformationsquelleAutor Jean Paul