登录网站 - >从控制台

时间:2017-12-18 15:33:02

标签: powershell login web key

我正在测试一个网页,并希望制作一个脚本以自动登录网站。

我的脚本如下:

$username = 'username'
$password = 'password'

$ie = New-Object -ComObject 'InternetExplorer.Application'
$ie.Visible = $true
$ie.Navigate("url")

while ($ie.Busy -eq $true) { Start-Sleep -seconds 1; }

$usernamefield = $ie.Document.GetElementsByTagName("input")[0]
$usernamefield.value = $username

$passwordfield = $ie.Document.GetElementsByTagName("input")[1]
$passwordfield.value = $password

$Link = $ie.Document.GetElementsByTagName("input") |
        Where-Object {$_.Type -eq "button"}
$Link.Click()

我必须以这种方式搜索标记名称,因为每次都会随机化id。

我的问题是我无法点击“登录”按钮,因为某种程度上网站希望凭据像按键一样被传递(我设法完成凭据字段,但页面无法识别它,就好像它们一样空的)。我怎样才能实现这一点,或者我在哪里可以学习呢?

1 个答案:

答案 0 :(得分:0)

如果你发送击键,你可以使用SendKeys功能。 我之前使用过这个脚本,但是如果你合并PSCX的Set-ForegroundWindow cmdlet以确保你的浏览器或应用程序是当前关注的应用程序,它会发现它更可靠:

 $Shell = New-Object -COM “WScript.Shell”
 $Shell.SendKeys(“F15”)

会发送F15击键。

希望能给你一个开始的地方。

你可以安装另一个名为WASP的第三方模块。

https://wasp.codeplex.com/

此外,Adam Driscoll编写了一个包含Selenium的C#WebDriver的Powershell模块:

https://github.com/adamdriscoll/selenium-powershell