-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 '继续浏览本网站(不推荐)。'}

$secLink.click()

不要工作。该网站打开,但点击此消息没有。

于 2013-03-07T13:17:12.293 回答
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.

于 2013-03-06T13:34:08.920 回答