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

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

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

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

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

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

заранее спасибо

1 ответ

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

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

Как только вы определите uniqueID, вы можете использовать $ie.Document.getElementById('ms__id14')

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