IE Automation with Powershell

后端 未结 3 2017
悲哀的现实
悲哀的现实 2021-01-13 20:19

I am attempting to automate the login to website on our intranet using Powershell and IE. So far, I have the following code that works:

$ie = new-object -co         


        
相关标签:
3条回答
  • 2021-01-13 20:54

    After trying a bit more...

    $applist = new-object -com shell.application
    $newie = $applist.windows() | where {$_.Type  -eq "HTML Document" -and $_.LocationURL -match "MainFrame.jsp"}
    
    0 讨论(0)
  • 2021-01-13 21:00

    Try this.

    1. $shell = (New-Object -ComObject Shell.Application).Windows()
    2. $shell.Count
    3. 7
    4. you have items 0-6 you can check this way.
    5. $shell.Item(0).LocationName
    6. or
    7. $shell.Item(0).LocationURL
    8. $shell.Item(1).LocationName
    9. $shell.Item(1).LocationURL
    0 讨论(0)
  • 2021-01-13 21:02

    I found an old article that describes how to do what you're looking for, by looping through the windows of a Shell.Application object. I have to say that while it looks possible and does seem to answer your direct question, the approach seems pretty unpleasant and fragile to me.

    If you're not averse to trying a different approach, I would suggest giving Selenium Webdriver a shot. You can use the Internet Explorer driver, and the C# examples in the documentation generally translate nicely into PowerShell. You get some other nice benefits too, like drivers for other web browsers or the ability to wait for a condition instead of relying on sleep/check loops. You will also have a driver.switchTo() function that allows you to bounce between windows or frames.

    0 讨论(0)
提交回复
热议问题