Ошибка вызова метода, поскольку [System.ComObject] не содержит метод с именем «IHTMLDocument3_getElementsByTagName» - PullRequest
0 голосов
/ 14 мая 2018

Я столкнулся с проблемой, которую не могу понять даже после какого-то безумного поиска в Google.Мой скрипт PowerShell открывает веб-сайт, вводит учетные данные для входа в систему и затем выбирает активную ссылку на сайте.Это кликабельная ссылка, с которой у меня проблемы.

Следующая строка работает на моем ПК (Windows 10), но не работает на моем сервере (Server 2012):

$Link=$ie.Document.IHTMLDocument3_getElementsByTagName("a") | where-object {$_.innerText -eq "Go to app"}

Ошибка:

Method invocation failed because [System.ComObject] does not contain a method named 
'IHTMLDocument3_getElementsByTagName'.
At C:\script.ps1:53 char:1
$Link=$ie.Document.IHTMLDocument3_getElementsByTagName("a") | where-object {$_.i ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (IHTMLDocument3_getElementsByTagName:String) [], RunTimeException
    + FullyQualifiedErrorID : MethodNotFound

Этозатем заставляет мою команду «щелкнуть» неудачно:

$link.click()

Сбой:

You cannot call a method on a null-valued expression.
At C:\script.ps1:54 char:1
+link.click()
+~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RunTimeException
    + FullyQualifiedErrorID : InvokeMethodOnNull

Я убедился, что .NET 4.5 установлен на сервере.Любые идеи или предложения с благодарностью!Даже если это изменит способ, которым я вообще выбираю кликабельную ссылку:)

1 Ответ

0 голосов
/ 15 мая 2018

следующее работает как на моей рабочей станции Windows 10, так и на Windows Server 2012

$Link=$ie.Document.getElementsByTagName("a") |  where-object {$_.innerText -eq "Go to app"}
...