Поиск в объекте приложения 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!"
};