Powershell SendKeys F5在IE中发送错误的Tab

时间:2016-12-02 09:14:27

标签: powershell internet-explorer scripting

我想创建一个脚本,用4个标签打开IE,进入全屏,然后在标签打开的同时在打开页面时不断重新加载页面。

add-type -AssemblyName System.Windows.Forms     
$ie = New-Object -ComObject "InternetExplorer.Application"  
$ie.Navigate("http://www.microsoft.com")
$ie.Navigate2("http://www.google.com" , 2048)
$ie.Navigate2("http://www.outlook.com" , 2048)
$ie.Navigate2("http://www.vice.com" , 2048)
$ie.Visible = $true
[System.Windows.Forms.SendKeys]::SendWait("{F11}{ENTER}")

do
{
start-sleep -Milliseconds 4000
[System.Windows.Forms.SendKeys]::SendWait("{F5}{ENTER}")
[System.Windows.Forms.SendKeys]::SendWait('^{TAB}')
[System.Windows.Forms.SendKeys]::SendWait("{F5}{ENTER}")
}
While ($i -ne 0)

使用此当前脚本,浏览器和选项卡将打开,并且还会在选项卡之间切换。问题是,例如,如果它切换到谷歌,微软会刷新而不是谷歌。

另一个问题是,它没有进入全屏。命令是在错误的地方吗?

PS:这是我的第一个PS脚本

1 个答案:

答案 0 :(得分:0)

我没有尝试过以下操作,但是从查看代码来看,有一些奇怪的事情:

  1. 在显示IE窗口并尝试使其全屏显示之间没有暂停。我添加了。
  2. 您无缘无故地发送{ENTER}
  3. 在循环中首先刷新当前选项卡,然后切换选项卡,然后刷新新选项卡。为什么?
  4. 我按如下方式更改了代码:

    add-type -AssemblyName System.Windows.Forms     
    $ie = New-Object -ComObject "InternetExplorer.Application"  
    $ie.Navigate("http://www.microsoft.com")
    $ie.Navigate2("http://www.google.com" , 2048)
    $ie.Navigate2("http://www.outlook.com" , 2048)
    $ie.Navigate2("http://www.vice.com" , 2048)
    $ie.Visible = $true
    
    start-sleep -Milliseconds 1000
    [System.Windows.Forms.SendKeys]::SendWait("{F11}")
    
    do
    {
        start-sleep -Milliseconds 4000
        [System.Windows.Forms.SendKeys]::SendWait('^{TAB}')
        start-sleep -Milliseconds 100
        [System.Windows.Forms.SendKeys]::SendWait("{F5}")
    }
    While ($i -ne 0)