Поиск в объекте приложения Internet Explorer

У меня есть InternetExplorer.Application

Я создаю автоматизацию и одна из страниц, которые я открыл, открыл диалоговое окно, которое выглядит как новая вкладка, но в том же процессе (я проверил его на вкладке диспетчер задач процесс, что тот же процесс просто потребляет больше ОЗУ) и я не нашел документ, если это диалоговое приложение.

Даже в shell.application В окнах его нет.

Я хочу помочь найти его

Я подумал сделать некоторую рекурсию на членах $ie, чтобы найти слово, которое появляется там, и если оно найдет путь к этому пути.

Заранее благодарю

Ответы

Ответ 1

Это длинный снимок, но поскольку он находится в интрасети компании, много раз это может быть диалоговое окно, сообщающее вам, что у вас есть 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!"
    };

Ответ 2

Похоже, диалоговое окно является формой в том же экземпляре IE. Это был бы элемент документа.

$ ie.document.documentelement.all | foreach {$ DE = $ _; $ DE | где {$ _. innerhtml -match "Мой аргумент поиска"} | foreach {$ DE | select uniqueID}}

После определения уникального идентификатора вы можете использовать $ ie.Document.getElementById('ms__id14')