2016-04-28 6 views
1

Ich verwende PowerShell, um IE als ein com-Objekt zu automatisieren. An einem Punkt, ich wählen Sie ein Objekt und speichern sie in der Variablen $ Produktbilder mit dieser Zeile:PowerShell-Zugriffseigenschaften von [Objekt HTMLCollection]

$productImages = $ieInner.document.getElementById("product-image").getElementsByTagName("img") 

Danach ist $ Produktbilder ein Objekt mit vielen Eigenschaften. Wenn Sie nur $ Produktbilder an der Eingabeaufforderung eingeben, müssen Sie Dutzende, wie bekommen:

Just a few of the properties of the object returned

$ productImages.length ist 1. In einer früheren Version dieses Skripts (das funktioniert), kehrte meine Wähler viele Objekte und ich habe die src von allen zu einem Array hinzugefügt. Dieser Selektor gibt nur eins zurück, aber $ productImages.src ist ein ungültiger Befehl. Ich verstehe nicht, wie man die src-URL des Produkts bekommt, das ist mein ultimatives Ziel.

+0

was '$ Produktbilder [0] – ssaviers

Antwort

0

Versuchen Sie Folgendes, um den Typ $productImages anzuzeigen. In diesem Fall glaube ich, dass es sich um ein Array mit einem Element handelt, da Sie auf die Längeneigenschaft zugreifen können.

$productImages.GetType() 

Die Art und Weise etwas für ein Array zugreifen ist das folgende Format zu verwenden:

$productImages[index].property 

In Ihrem Fall die erforderlich Skript sollte sein:

$productImages[0].src 

uns Lassen wissen Sie, wenn Sie einen anderen Wert für den GetType für Ihre Variable erhalten.

+0

GetType .src'() bestätigt, dass $ Produktbilder ein ComObject basetype von "System.MarshalByRefObject" $ productImages.length 1 zeigt, ist, wie Sie es erwarten. Aber $ Produktbilder [0] .src nichts zurück Wenn ich mit diesen Zeilen gehen kann ich das src in ein anderes Array bekommen und es schließlich $ zugreifen imgArray = @() foreach ($ $ Produktbilder img in) {$ imgArray = $ imgArray + $ img.src} $ imgURL = $ imgArray [0] $ imgURL = $ productImages | Wählen Sie * | ForEach-Objekt {$ _. Src} $ savePath = $ saveLocation + $ productName + ".jpg" Start-BitsTransfer $ imgURL $ savePath – CmdrKeene