Я ищу несколько идей, почему это случилось с моим другом.Я создал полнофункциональный скрипт для входа на сайт, а затем перенаправления на конкретное место этого сайта, поиска и нажатия на некоторые кнопки и выполнения некоторых действий.Но когда я отправляю его своему другу для проверки, у него появляются ошибки (я опубликую их позже)
Сначала подумайте, что я пытался разрешить powershell в своей операционной системе Windows 10.Затем я пытался запустить скрипт от имени администратора, но те же ошибки.
Это полный скрипт, и он прекрасно работает для меня.
$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) перейдите к URL-адресу voicePage 4) я ожидаю, что там будут 4 кнопки голосования, поэтому я создаю цикл, и в каждом взаимодействии я искал не отключенные кнопки (кнопки отправки) и выполнял нажатие на них5) каждый щелчок приведет к перенаправлению на другую страницу, и я вынужден был вернуться назад, когда браузер не был занят 6) после всех взаимодействий я выполняю действие выхода из системы
Неожиданный результат от моего друга: неожиданный результат
у нас та же версия powershell 5.1, та же операционная система Windows 10, тот же браузер Internet Explorer 11