PowerShell로 브라우저 제어
브라우저를 제어하는 소스가 있길래 구글 검색을 자동으로 하는 소스를 만들어봤다.
Function NavigateToApp($objBrowser, [string] $strURL, [string] $strCtrlID, [int] $intMaxDelays, [int] $intDelayMSec)
{
$intDelays = 0
$bLoaded = $false
$objBrowser.Navigate($strURL)
While($bLoaded -EQ $false -AND $intDelays -LT $intMaxDelays)
{
$intDelays++
[System.Threading.Thread]::Sleep($intDelayMSec)
$objDoc = $objBrowser.Document
If($objDoc -EQ $null)
{
Continue
}
$objCtrl = $objDoc.getElementByID($strCtrlID)
If($objCtrl -NE $null)
{
$bLoaded = $true
}
}
If($intDelays -EQ $intMaxDelays)
{
throw "Browser not loaded after $intMaxDelays delays."
}
}
$objIE = New-Object -ComObject InternetExplorer.Application
$objIE.Navigate("about:blank")
$objIE.Visible = $true
[System.Threading.Thread]::Sleep(2000);
# Resizing
$objIE.Height = 500
$objIE.Width = 400
NavigateToApp $objIE "http://www.google.co.kr" "q" 100 2
$objDoc = $objIE.Document
$objSearchTxt = $objDoc.getElementByID("q")
$objSearchBtn = $objDoc.getElementByID("btnG")
If($objSearchTxt -EQ $null -OR $objSearchBtn -EQ $null)
{
# Print Colored Text
Write-Host "one or more controls are null" -backgroundcolor "red" -foregroundcolor "yellow"
Exit
}
$objSearchTxt.Value = "powershell"
$objSearchBtn.Click()
IEControl.ps1
참고) http://msdn.microsoft.com/ko-kr/magazine/cc337896.aspx