PowerShell не может нажать кнопку - PullRequest
0 голосов
/ 05 января 2019

Я хотел начать свое путешествие с powershell, но, похоже, не могу понять, почему кнопка на этом сайте не отвечает

https://s1.wcy.wat.edu.pl/ed/

(это мой универсайт)

Я хочу иметь возможность войти через скрипт.

Я пробовал разные варианты, такие как

$submitButton = $ie.documentElement.getElementsByTagName("input") | Where-Object {$_.value -eq ' Zaloguj się '} $submitButton.click()

или

$submitButton = $ie.documentElement.getElementsByTagName("input") | Where-Object {$_.type -eq 'submit'} $submitButton.click()

но я всегда получаю ошибку.

Вы не можете вызвать метод для выражения с нулевым значением

Чего мне не хватает?

1 Ответ

0 голосов
/ 05 января 2019

Попробуй так ...

$ie = New-Object -com InternetExplorer.Application 
$ie.visible=$true
$ie.navigate('https://s1.wcy.wat.edu.pl/ed') 

while($ie.ReadyState -ne 4) {start-sleep -m 100}

$UserID = $ie.document.getElementsByTagName('INPUT') | 
Where-Object {$($_.Name) -match 'userid'}
$UserId.value = 'UserID'

$UserPassword = $ie.document.getElementsByTagName('INPUT') | 
Where-Object {$($_.Name) -match 'password'}
$UserPassword.value = 'password'

$Submit = $ie.document.getElementsByTagName('INPUT') | 
Where-Object {$($_.Value) -match 'Zaloguj'}
$Submit.click()

С тех пор как это произошло, INPUT стал более надежным, поскольку все они являются тегами INPUT.

$wcy = Invoke-WebRequest -Uri 'https://s1.wcy.wat.edu.pl/ed'
$wcy.Forms[0] | Format-List -Force
$wcy.Forms[0].Fields
$wcy.InputFields

Я только что проверил это, так что я знаю, что это работает. Ну, это сделал для меня. Ну, конечно, вход в систему не удалось из-за недействительных кредитов. ; -}

Вы не получили совпадение (это сообщение об ошибке) с -eq из-за того, что строка читается не так, как ожидалось. Использование матча работало лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...