2016-03-23 27 views
1

Bir siteye giriş yapan ve harici bir siteye giden bir bağlantıya tıklayan bir powershell komut dosyası var. Bağlantı tıklandığında yeni bir pencerede açılır ve orijinal pencereyi kapatır.

Bu bir sorundur çünkü yeni sayfadaki öğelere erişmem gerekiyor, ancak belgede herhangi bir komut (getElementById gibi) gerçekleştiremiyorum çünkü $ ie com nesnesi hala orijinal pencereye başvuruda bulunuyor. $ Ie com nesnesine, eski pencereden ziyade açılan yeni pencereye başvuruda bulunmanın bir yolu var mı? herhangi bir yardım takdir edilir. Teşekkürler.

cevap

0

yüzden

$ie2 = New-Object -COMObject InternetExplorer.Application 

$ie2.Navigate("linkToPopupWindow.com") 

I gibi yeni bir InternetExplorer.Application COM nesnesi düzenlendi

ÇÖZÜLDÜ o zaman belge obje referans mümkün oldu Bir uyku gerçekleştirdikten sonra $ ie2 ct, örneğin:

Start-Sleep -Seconds 3 
$doc = $ie2.Document 

Bu benim için çalıştı. Herkesin girişi için teşekkürler. Umarım bu başka birine yardımcı olur. Birisi benzer şekilde mücadele ediyorsa, bana mesaj atmaktan çekinmeyin, ben de yardım edebilirim!

1

Doğru IE örneğine bağlanmanız gerekiyor.

$AllExplorers = (New-Object -ComObject Shell.Application).Windows() 

Bu, tüm Dosya ve Internet explorer nesnelerini döndürür.

Daha sonra IE'nizi Ad veya URL'ye göre bulabilirsiniz.

$MyIE = $AllExplorers | Where-Object {$_.LocationName -eq "Google"}} 
$MyIE = $AllExplorers | Where-Object {$_.LocationUrl -like "*google.com*"} 

Artık elemanları $MyIE arayabilirsiniz ...

$element = $MyIE.Document.getElementById('ID') 
+0

Yanıt için teşekkür ederiz. Bunu denedim ve bu hata iletisini aldım: "Bir koleksiyonda numaralandırılırken hata oluştu: Erişim reddedildi. (HRESULT özel durum: 0x80070005 (E_ACCESSDENIED))." – Quanda

+0

IE com nesnesini kullanıyorum, kabuk değil: Kod şöyle görünüyor: $ AllExplorers = (Yeni Nesne -com InternetExplorer.Application) .Windows() [NEWLINE] $ AllExplorers – Quanda

+0

GÜNCELLEME: $ AllExplorers değişkenini yaptım dizisi, son hatayı çözdü. Ancak şimdi bu yeni hatayı alıyorum: [System .__ ComObject] 'Windows' adlı bir yöntemi içermediğinden, yöntem çağırma başarısız oldu. – Quanda

İlgili konular