Я пытаюсь войти в свои принтеры, чтобы получить от них журналы и проанализировать их с помощью powershell.
Поле входа в систему — это не ФОРМА, это неупорядоченный список, содержащий текстовые поля ВВОД.
Итак, мне удалось выбрать текстовое поле PIN-кода и указать ему правильное значение.
Мне также удалось удержать кнопку, которую я должен нажать, но теперь моя проблема в том, что мне нужно нажать эту кнопку и объявить SessionVariable, чтобы я мог продолжить этот сеанс после нажатия кнопки, и я вошел в систему .
Как правильно нажать эту кнопку? Я пытаюсь это, но это не работает:
$Page = Invoke-WebRequest -Uri "http://xxx/webglue/content?c=LoginDropdown&lang=fr"`
-Headers @{"Pragma"="no-cache"; "Accept-Encoding"="gzip, deflate"; "Accept-Language"="fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"; "Accept"="application/json, text/javascript, */*; q=0.01"; "Cache-Control"="no-cache"; "X-Requested-With"="XMLHttpRequest"; "Cookie"="lang=fr; autoLogin=false"; "Referer"="http://xxx/"}`
-ContentType "application/x-www-form-urlencoded; charset=utf-8"`
-SessionVariable "SESSION"
$TextboxPIN = $page.ParsedHtml.body.getElementsByTagName('input') | Where-Object {$_.OuterHTML -match "pin"}
$TextboxPIN.value = "xxx"
$ConnectionButton = $page.ParsedHtml.body.getElementsByTagName('button') | Where-Object {$_.onclick -like "*login(this)*"}
Invoke-WebRequest -Uri ("http://xxx/webglue/content?c=LoginDropdown&lang=fr"+ $ConnectionButton.click() ) -Method POST -Body $ConnectionButton -SessionVariable "ADMIN"
На данный момент это не работает, потому что я неправильно вошел в систему, так как я не могу правильно нажать кнопку с помощью POST.
Invoke-WebRequest -uri "http://xxx/cgi-bin/history" -WebSession $ADMIN
Это http:// PRINTER-IP/webglue/content?c=LoginDropdown&lang=fr"+ $BoutonConnexion.click()
основано на том, как это делается с формами, но я уверен, что в данном случае это неправильно. Как правильно нажать?