【问题标题】:Issue opening Internet Explorer from PowerShell从 PowerShell 打开 Internet Explorer 的问题
【发布时间】:2016-03-13 18:40:43
【问题描述】:

我正在编写一个 PowerShell 脚本,该脚本会从 Intranet 网站上抓取大量屏幕。我无权访问,也无法修改该网站的源代码。

脚本从打开 Internet Explorer 开始(由于公司政策需要 IE11),然后浏览几个页面并根据从各个页面抓取的信息执行操作。一切似乎都运行良好。

在一个特定页面上,脚本必须在 2 个输入框中输入信息以生成超链接列表,然后使用 click() 选择其中一个超链接。超链接是指向 void(0) 的 href,然后是 onclick 中的 JavaScript 函数。

<td align="left" class="wGNodeStyle">
  <a href="javascript:void(0)" class="workgroupStyle" onclick="openWgMgmtWindow(2)">

JavaScript 函数打开一个新窗口并将一些用户信息提交到这个新窗口。

function openWgMgmtWindow(selIndex) {
  document.getElementsByName("workgroupSo.groupId")[0].value = eval('document.all.wgGroupId'+selIndex+'.innerHTML');        
  document.getElementsByName("workgroupSo.primaryGroupId")[0].value = eval('document.all.wgGroupPrimary'+selIndex+'.innerHTML');
  document.getElementsByName("actionString")[0].value = "Search";

  var w = window.open("", document.forms['formManageWG'].target,winProps);
  w.focus();
  document.forms['formManageWG'].submit();
  return false;
}

问题来了:

如果我在 PowerShell 之外打开 Internet Explorer,无论是通过单击其图标还是直接运行可执行文件,导航到相关页面并单击超链接,都会打开一个新窗口并显示预期的屏幕。即使我按照刚才的描述打开 Internet Explorer 并执行脚本,省略 IE 的脚本启动,只找到 IE 对象,一切都会正常工作,并且会像上面一样打开一个新窗口。

# & "$env:programfiles\Internet Explorer\iexplore.exe" 'https://www.ehpas.com'
$objEhpas = New-Object -comObject Shell.Application
do {
  Start-Sleep -Milliseconds 500
  $ieEhpas = @($objEhpas.windows() | ? {$_.locationName -like '*EHPAS Home Page*' })[0]
} while ($ieEhpas -eq $null)

但是,如果我让脚本启动 Internet Explorer,当我点击超链接页面时,将打开一个新的空白窗口,然后在带有超链接页面的选项卡旁边也会打开一个新选项卡,其中包含应该在新窗口中。我在进程中找不到新标签,所以我无法控制它。

问题是,直接打开 Internet Explorer 与以编程方式打开它有什么区别?以及如何让程序化版本的行为与直接版本相同?

我为这篇长文道歉。

【问题讨论】:

    标签: javascript internet-explorer powershell


    【解决方案1】:

    我终于找到了我的问题的答案。显然,这是 Internet Explorer 11 中的一个错误,不会被修复。

    https://connect.microsoft.com/IE/feedback/details/812072/ie-11-window-open-issue

    这个问题对我来说是因为我在管理员模式下运行 PowerShell。以“我自己”的身份运行 PowerShell 解决了 IE 如何打开的问题,但也带来了一些其他挑战。但是,我应该能够编写出我的出路。

    【讨论】:

      猜你喜欢
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      相关资源
      最近更新 更多