我正在尝试将我的凭证放在网站上,以便自动完成我的一些任务。我正在尝试这段代码。没有任何事情发生。
$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()
答案 0 :(得分:1)
在不了解页面的情况下很难分辨。
话虽如此:两个明显的错误可能是它的原因:
# 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
。
答案 1 :(得分:1)
感谢重播。
关于它“$ _。财产而不是$ .Property。”打字错了,抱歉。
但..我最初的问题是这个功能:
$ secLink = $ Ie.Document.getElementsByTagName('A')| Where-Object {$ _。innerText -eq'继续浏览本网站(不推荐)。'}
$ secLink.click()
不要工作。该网站打开,但点击此消息不是。