我正在寻找一些想法,为什么我的朋友会这样。我创建了用于登录网站的功能齐全的脚本,然后重定向到该网站的特定位置,找到并单击一些按钮并执行一些操作。但是,当我将其发送给我的朋友进行测试时,他遇到了错误(我会在稍后发布)
首先想到的是,我尝试允许他在Windows 10操作系统上使用powershell。 然后我试图以管理员身份运行脚本,但出现相同的错误。
这是完整的脚本,对我来说很好用。
$ie = New-Object -ComObject 'internetExplorer.Application' # start internet explorer browser (default browser)
$ie.Visible= $true # Make it visible
$username = "someusername" # user name
$password = "somepassword" # user password
$ie.Navigate("loginURL") #login page
while ($ie.Busy){ Start-Sleep -Milliseconds 100 }
# Get elements for username and password then set values
$usernamefield = $ie.document.querySelector('[name="username"]').value = "$username"
$passwordfield = $ie.document.querySelector('[name="password"]').value = "$password"
# Get submit button and perform submit action (click)
$ie.document.querySelector('[name="submit"]').click()
while ($ie.Busy){ Start-Sleep -Milliseconds 100 }
# After successfull login perform redirect:
$ie.Navigate("voteURL") # vote page
while ($ie.Busy){ Start-Sleep -Milliseconds 100 }
$i = 0
Write-Host "Voting process started..."
while($i -lt 4){
# get all clickable elements with name submit (and not disabled)
$Btn = $ie.Document.IHTMLDocument3_getElementsByTagName("Input") | where-object {$_.name -match 'submit' -And $_.disabled -NotMatch 'true'}
if($Btn){
$Btn.click()
Write-Host 'Clicked!!'
while ($ie.Busy){ Start-Sleep -Milliseconds 200 }
$ie.Navigate("voteURL") # redirect back to vote page
while ($ie.Busy){ Start-Sleep -Milliseconds 200 }
}
$i++
}
Write-Host "Voting process ended!"
while ($ie.Busy){ Start-Sleep -Milliseconds 100 }
# Logout Message
Write-Host "Performing logout action"
$ie.Navigate("voteURL")
while ($ie.Busy){ Start-Sleep -Milliseconds 100 }
# Logout from account
$LogoutBtn = $ie.Document.IHTMLDocument3_getElementsByTagName("Input") | where-object {$_.name -match 'logout'}
$LogoutBtn.click()
while ($ie.Busy){ Start-Sleep -Milliseconds 100 }
#Write-Host "Closing browser! BYE!"
#$ie.Quit()
脚本应: 1)打开Internet Explorer, 2)使用用户名和密码登录, 3)导航到votePage url 4)我希望在那里有4个投票按钮,所以我创建了循环,并且在每次交互中我都在寻找非禁用按钮(提交按钮)并点击它们 5)每次点击都会重定向到另一个页面,当浏览器不忙时,我被迫向后导航 6)在所有互动之后,我将执行注销操作
我朋友的意外结果: unexpected results
我们具有相同版本的Powershell 5.1,相同的操作系统Windows 10,相同的浏览器Internet Explorer 11