我有一个PowerShell脚本,它登录到一个站点并单击指向外部站点的链接。单击链接后,它将在新窗口中打开并关闭原始窗口。
这是一个问题,因为我需要访问新页面上的元素,但是无法对文档执行任何命令(例如getElementById),因为$ ie com对象仍然引用原始窗口。有没有办法告诉$ ie com对象引用打开的新窗口而不是旧窗口?任何帮助表示赞赏。谢谢
答案 0 :(得分:1)
您需要连接到正确的IE实例。
$AllExplorers = (New-Object -ComObject Shell.Application).Windows()
这将返回所有文件和Internet Explorer对象。
接下来,您可以通过名称或网址找到您的IE。
$MyIE = $AllExplorers | Where-Object {$_.LocationName -eq "Google"}}
$MyIE = $AllExplorers | Where-Object {$_.LocationUrl -like "*google.com*"}
您现在可以在$MyIE
搜索元素...
$element = $MyIE.Document.getElementById('ID')
答案 1 :(得分:0)
<强>解决强>
创建了一个新的InternetExplorer.Application COM对象,如此
$ie2 = New-Object -COMObject InternetExplorer.Application
$ie2.Navigate("linkToPopupWindow.com")
然后我可以在执行睡眠后引用$ ie2的文档对象,如下所示:
Start-Sleep -Seconds 3
$doc = $ie2.Document
这对我有用。感谢大家的投入。希望这有助于其他人。如果有人同样挣扎,请随时给我发消息,我可以尝试帮助!