Get Currently Existent Object Not Created with New-Object - PowerShell

itanon

New Member
Basically I have a script where it logs into a site and browses to a particular page. It then clicks a link that opens a popup window. I'm trying to get the object (-com internetexplorer.application) of the new window that popped up.


#init internet explorer window
$oIE = New-Object -com internetexplorer.application;
$oIE.visible = $true;

#browse to site
$oIE.navigate2("http://*****.com");

while ($oIE.Busy -eq $true)
{
#Start-Sleep -Milliseconds 1000;
}

#input login info
$oIE.Document.getElementById("username").value = "*******";
$oIE.Document.getElementByID("password").value = "********";
$oIE.Document.getElementById("login").Click();

while ($oIE.Busy -eq $true)
{
Start-Sleep -Milliseconds 1000;
}

#browse to job task details page
$oIE.navigate2("http://*****.com/index.php?action=route_job_task&method=edit&jtlid=1140560");

while ($oIE.Busy -eq $true)
{
Start-Sleep -Milliseconds 1000;
}

#find and worksheet link
$oLinks = @($oIE.document.getElementsByTagName("A"));

foreach ($oLink in $oLinks)
{
if ($oLink.href -eq "http://*****.com/index.php?action=communications_log&mode=add&type=feedback&header=f&jtlid=1140560") {
#THIS LINK IS A POPUP
$oLink.click();
}
}

while ($oIE.Busy -eq $true)
{
Start-Sleep -Milliseconds 1000;
}

#get add inspection window
#I NEED THE INTERNETEXPLORER OBJECT THAT WAS JUST CREATED VIA THE POPUP
#THE FOLLOWING GETS THE PROCESS, BUT IT'S NOT AN OBJECT LIKE I NEED

$oReportForm = Get-Process | where {$_.mainWindowTItle -eq "Add Communication - Windows Internet Explorer"};

while ($oReportForm.Busy -eq $true)
{
Start-Sleep -Milliseconds 1000;
}

#I NEED ACCESS TO A .DOCUMENT CONTAINER
$oReportForm.Document.getElementById("message").value = "I NEED TO INPUT TEXT HERE";

Start-Sleep -Milliseconds 20000;
#$oIE.Quit();
 

My Computer

I think I found a solution...

#get add inspection window
$app = new-object -com shell.application;
$oReportForm = $app.windows() | where {$_.LocationName -match "Add Communication"};


While ($oReportForm.ReadyState -ne 4) { Start-Sleep -Seconds 1 }

$oReportForm.Document.getElementById("subject").value = "ASDF";
 

My Computer

Back
Top