麻烦自动化Internet Explorer

时间:2013-03-06 13:15:52

标签: powershell

我正在尝试将我的凭证放在网站上,以便自动完成我的一些任务。我正在尝试这段代码。没有任何事情发生。

$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()

2 个答案:

答案 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()

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