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