This post has an example of using PowerShell to automate IE. Every day I browse to Packt Publishing to take advantage of their free technology book of the day (https://www.packtpub.com/packt/offers/free-learning). After a few days of manually browsing I decided to write a script to do it for me. Here it is:
$ie = New-Object -ComObject InternetExplorer.Application.1 $ie.Visible = $False # $False is the default for Visible property, but I'll leave it here # so it is easy to change to True for debugging. $ie.Silent = $True $ie.Navigate("https://www.packtpub.com/packt/offers/free-learning") # This pauses the script until the page loads. If this wasn't # here, the next commands would error out because the DOM # isn't loaded yet. while($ie.Busy) {Start-Sleep -Milliseconds 100} $email_form = $ie.Document.getElementById("email") $email_form.value = "jake@standfastsecurity.com" $password_form = $ie.Document.getElementById("password") $password_form.value = "myplaintextpassword" $submit_button = $ie.Document.getElementById("edit-submit-1") $submit_button.click() # Similar, but less elegant than above, if the script does not # pause, the value of $link will be null since the page takes time # to load for the href to appear. Start-Sleep -Seconds 5 $link = $ie.Document.getElementsByTagName('a') | where-object {$_.href -match 'freelearning-claim'} $link.click()
And that’s it! A good post on navigating the page and filling in forms is here: https://blogs.technet.microsoft.com/heyscriptingguy/2015/05/14/use-powershell-to-check-in-for-flight/.
The InternetExplorer.Application COM Object has a lot to explore. To see all methods and properties, use the following commands to see everything the object has to offer:
$ie = New-Object -ComObject InternetExplorer.Application.1 $ie | Get-Member