-1

私は自分のクレデンシャルをウェブサイトに入れて、自分が持っているいくつかのタスクを自動化しようとしています。私はこのコードを試しています。そして、何も起こりません。

$Url = "https://srvdcvs05.fiep_pr.br:1311/"
$Ie = New-Object -Com InternetExplorer.Application
$Ie.Navigate( $Url )
$secLink = $Ie.Document.getElementsByTagName('A') | Where-Object {$_.innerText -eq 'Continue to this website (not recommended).'}
$secLink.click()
$Ie.Document.getElementsByType("input") | where { $.Name -eq "user" }.value = "myuser"
$Ie.Document.getElementsByName("input") | where { $.Name -eq "password" }.value = "mypassword"
$loginBtn = $Ie.Document.getElementsById('input') | Where-Object {$_.Type -eq 'button' -and $_.Value -eq 'LoginButton'}
$loginBtn.click()
4

2 に答える 2

1

リプレイありがとう。

それについて「$.Propertyではなく$_.Property。」誤字でした、すみません。

しかし..私の最初の問題はこの機能です:

$secLink = $Ie.Document.getElementsByTagName('A') | Where-Object {$_.innerText -eq 'この Web サイトに進む (非推奨)'}

$secLink.click()

働かないでください。ウェブサイトは開きますが、このメッセージをクリックしても開きません。

于 2013-03-07T13:17:12.293 に答える
1

ページについて何も知らずに判断するのは困難です。

そうは言っても、その理由である可能性のある2つの明らかな間違い:

# Your code: $Ie.Document.getElementsByType("input") | where { $.Name -eq "user" }.value = "myuser"
($Ie.Document.getElementsByType("input") | where { $_.Name -eq "user" }).value = "myuser"
# Your code: $Ie.Document.getElementsByName("input") | where { $.Name -eq "password" }.value = "mypassword"
($Ie.Document.getElementsByName("input") | where { $_.Name -eq "password" }).value = "mypassword"

したがって、スクリプト ブロックのプロパティへのアクセスは意味がなく ( { }.value)、ではなくwhere必要です。$_.Property$.Property

于 2013-03-06T13:34:08.920 に答える