Не можете использовать объект InternetExplorer.Application?

У меня есть целый файл кода, который работает безупречно на ПК. Я принес это другому, и оно лопнуло. Я использовал этот фрагмент, и вывод просто пустой, он ничего не получает от объекта. Браузер загружает страницу, хотя.

# Create the IE com object 
"Lauching IE process..."
$ie = new-object -com InternetExplorer.Application 
$ie.visible = $true
# Navigate to the login page
"Opening $loginPage"
$ie.navigate($loginPage) 
"Waiting for page to load..."
# Wait for the page to finish loading 
do {sleep 2} until (-not ($ie.Busy)) 
sleep 2
$ie.document.body.innerHTML

Я нашел некоторые ссылки на модели безопасности IE, работающие от имени администратора и т. Д., И немного возился с ними.

  • Скрипт не работает, если я запускаю его от имени администратора
  • Я отключил как можно больше безопасности IE
  • Понизился с IE 11 до IE 9

Все еще не повезло.

Какие-либо предложения?

Спасибо!

2 ответа

Решение

Хорошо, я решил проблему. На основании этого поста:

Powershell System.__ ComObject.document свойство больше не работает под IE 9

Я также заметил, что

$ie.document | Get-Member

Показал guid объекта COM на сломанной машине, и mshtml на хорошей машине. На хорошей машине действительно был установлен Office. Я скопировал

C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\microsoft.mshtml.dll

сломанной машине. Затем в верхней части моего сценария я добавил

Add-Type -Path "C:\dll\Microsoft.mshtml.dll"

И, бинго, скрипт теперь работает как положено!

Я не уверен, что вы сохранили в переменной $ loginPage, поэтому я заменил ее на www.google.com, и она открыла страницу, но не отображала часть.document.body.html.

Я нашел этот форум, на котором обсуждалась проблема, похожая на то, что вы описываете. Они рекомендовали изменить код на

$ie = new-object -com internetexplorer.application 
$ie.Visible = $true
$ie.navigate('https://www.google.com')
while($ie.busy){Start-Sleep -Milliseconds 100}
$ie.document.body | select innerhtml

Я попробовал это, и это работало нормально.

ссылка: https://social.technet.microsoft.com/Forums/scriptcenter/en-US/2faea229-a114-4d58-9624-f1ee42404928/powershell-internetexplorerapplication-things-are-missing?forum=ITCG

Другие вопросы по тегам