我正在尝试登录我的打印机以从中获取日志并使用 powershell 解析它们。
登录框不是 FORM,它是一个包含 INPUT 文本框的无序列表。
所以我设法选择了 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()
是基于它是如何处理表单的,但我确信在这种情况下它是错误的。如何正确点击它?