Document.getElementsByTagName ("span") проблема с Power Shell версии 2 Windows 7 - PullRequest
0 голосов
/ 01 ноября 2018

Я пишу сценарий PowerShell, чтобы открыть веб-страницу через Internet Explorer, проверить веб-страницу, чтобы найти ссылку на веб-страницу по тегу span, и щелкнуть ссылку, чтобы открыть ссылку, но $ IE.Document.getElementsByTagName (" span ") | ? {$ _. InnerHTML -eq «$ word» не работает в Windows 7 PowerShell версии 2, сценарий:

    $IE = new-object -com internetexplorer.application
$req = [System.Net.WebRequest]::Create("http://device.com/link.html")
$resp = $req.GetResponse()
$reqstream = $resp.GetResponseStream()
$stream = new-object System.IO.StreamReader $reqstream
$go = $stream.ReadToEnd() 
$IE.navigate($go)
$IE.visible=$true
start-sleep 10
$req = [System.Net.WebRequest]::Create("http://device.com/word.html")
$resp = $req.GetResponse()
$reqstream = $resp.GetResponseStream()
$stream = new-object System.IO.StreamReader $reqstream
$word = $stream.ReadToEnd()
write-host $word
$Link = $IE.Document.getElementsByTagName("span") | ? {$_.InnerHTML -eq "$word"}
$Link.click()

Я хочу заменить любую команду для работы этого сценария на PowerShell версии 2 в Windows 7, и я не знаю, что, команда s может сделать это, найти ссылку «Мой разум» и щелкнуть эту ссылку с помощью этого сценария!

1 Ответ

0 голосов
/ 08 ноября 2018

Здравствуйте, мой друг @ Theo

Сценарий Изменить на это:

$IE = new-object -com internetexplorer.application
$req = [System.Net.WebRequest]::Create("http://device.com/link.html")
$resp = $req.GetResponse()
$reqstream = $resp.GetResponseStream()
$stream = new-object System.IO.StreamReader $reqstream
$go = $stream.ReadToEnd() 
$IE.navigate($go)
$IE.visible=$true
start-sleep 10
$req = [System.Net.WebRequest]::Create("http://device.com/word.html")
$resp = $req.GetResponse()
$reqstream = $resp.GetResponseStream()
$stream = new-object System.IO.StreamReader $reqstream
$word = $stream.ReadToEnd()
write-host $word
$Link = @($IE.Document.getElementsByTagName("span") | ? {$_.InnerHTML -eq "$word"})[0]
$Link.click()

Не работает, и ответ:

Cannot find an overload for "getElementsByTagName" and the argument count: "1".
At line:16 char:44
+ $Link = @($IE.Document.getElementsByTagName <<<< ("span") | ? {$_.InnerHTML -eq "$word"})[0]
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest

You cannot call a method on a null-valued expression.
At line:17 char:12
+ $Link.click <<<< ()
    + CategoryInfo          : InvalidOperation: (click:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...