【问题标题】:Search on an Internet Explorer App Object在 Internet Explorer 应用程序对象上搜索
【发布时间】:2016-04-11 00:45:38
【问题描述】:

我有一个InternetExplorer.Application

我正在创建一个自动化 和我打开的一页, 打开一个看起来像新标签的对话框,但在同一个进程上(我通过 task manager >> process 标签检查了同一个进程只是消耗更多 RAM)如果该对话框应用程序,我找不到该文档。

即使在shell.application 在 windows 中它不存在。

我需要帮助找到它

我想对$ie 成员进行一些递归,以找到出现在那里的单词,如果找到路径,则发布该路径。

提前谢谢你

【问题讨论】:

  • 这是 iframe 吗?你能亲眼看到窗户吗?
  • 我可以看到窗口,但它不在 $Ie.document.frames 下,它看起来像一个新窗口,但不知何故它提示窗口
  • 如果你运行这个:$ie.Document.getElementsByTagName('iframe') 你得到什么了吗?
  • 不,它没有找到任何东西。已经尝试 requrcsion 功能,但仍然没有。
  • 很难说这里有什么问题。您可以添加一些代码以允许其他人重现该问题吗?

标签: powershell powershell-4.0 powershell-ise


【解决方案1】:

听起来对话框是同一个 IE 实例中的一个窗体。这将是一个文档元素。

$ie.document.documentelement.all | foreach {$DE = $_ ; $DE | {$_.innerhtml -match "我的搜索参数"}| foreach{$DE|select uniqueID}}

一旦确定了 uniqueID,就可以使用 $ie.Document.getElementById('ms__id14')

【讨论】:

    【解决方案2】:

    这是一个长镜头,但由于它在公司内部网中,很多时候可能是一个对话框,告诉您您有 SSL 证书错误。根据公司在您的机器上强制执行的策略(错误地?),它可能是可见的或不可见的。在导航到有问题的 URL 后,您可能会尝试使用它绕过它:

        if ($ie.document.url -Match "invalidcert") {
            $bypass_link = $ie.Document.getElementsByTagName("a") | where-object {$_.id -eq "overridelink"}
            $bypass_link.click()
            while ($ie.ReadyState -ne 4) {
                start-sleep -m 100
            }
            "Done!"
        };
    

    【讨论】:

      猜你喜欢
      • 2010-10-24
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2020-05-12
      相关资源
      最近更新 更多