我正在测试一个网页,并希望制作一个脚本以自动登录网站。
我的脚本如下:
$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。
我的问题是我无法点击“登录”按钮,因为某种程度上网站希望凭据像按键一样被传递(我设法完成凭据字段,但页面无法识别它,就好像它们一样空的)。我怎样才能实现这一点,或者我在哪里可以学习呢?
答案 0 :(得分:0)
如果你有发送击键,你可以使用SendKeys功能。
我之前使用过这个脚本,但是如果你合并PSCX的Set-ForegroundWindow
cmdlet以确保你的浏览器或应用程序是当前关注的应用程序,它会发现它更可靠:
$Shell = New-Object -COM “WScript.Shell”
$Shell.SendKeys(“F15”)
会发送F15击键。
希望能给你一个开始的地方。
你可以安装另一个名为WASP的第三方模块。
此外,Adam Driscoll编写了一个包含Selenium的C#WebDriver的Powershell模块: