在现有IE实例中打开选项卡

Roh*_*017 11 powershell internet-explorer

$ie = New-Object -com internetexplorer.application
Run Code Online (Sandbox Code Playgroud)

每次我用这个对象打开一个新网站(即每次脚本运行时)都会在新的IE窗口中打开,我不希望它这样做.我希望它在一个新的选项卡中打开,但在以前打开的IE窗口中也是如此.我想在下次运行脚本时重用此对象.我不想创建一个新对象

那么有什么方法可以检查Internet Explorer的实例并重用其实例???

我试过这个解决方案:

首先,您必须附加到已经运行的Internet Explorer实例:

$ie = (New-Object -COM "Shell.Application").Windows() `
    | ? { $_.Name -eq "Windows Internet Explorer" }
Run Code Online (Sandbox Code Playgroud)

然后导航到新URL.打开该URL的位置是通过Flags参数控制的:

$ie.Navigate("http://www.google.com/", 2048)
Run Code Online (Sandbox Code Playgroud)

但是我无法navigate在这个新创建的对象上调用方法$ie.

aph*_*ria 10

您可以Start-Process用来打开URL.如果浏览器窗口已打开,它将作为选项卡打开.

Start-Process 'http://www.microsoft.com'
Run Code Online (Sandbox Code Playgroud)

  • 这假定Internet Explorer是默认的Web浏览器. (4认同)

Ans*_*ers 9

首先,您必须附加到已经运行的Internet Explorer实例:

$ie = (New-Object -ComObject "Shell.Application").Windows() |
      Where-Object { $_.Name -eq "Windows Internet Explorer" }
Run Code Online (Sandbox Code Playgroud)

然后你Navigate到新的URL.打开该URL的位置是通过以下Flags参数控制的:

$ie.Navigate("http://www.google.com/", 2048)
Run Code Online (Sandbox Code Playgroud)

编辑:在情况2或多个IE实例正在运行(其他标签算作其他实例为好)枚举将返回一个数组,所以必须选择来自阵列的特定实例:

$ie[0].Navigate("http://www.google.com/", 2048)
Run Code Online (Sandbox Code Playgroud)