Форма Нажмите () с токеном - PullRequest
       5

Форма Нажмите () с токеном

0 голосов
/ 26 августа 2018

Вот что я пытаюсь сделать:

  1. Откройте сайт и нажмите кнопку «Я принимаю», чтобы принять условия.( работает )
  2. Выше перенаправляет меня на страницу входа, где я ввожу имя пользователя и пароль.( работает )
  3. Нажмите «Войти».( не удается , но я не получаю ошибок)

Я включил защищенный режим, хотя я не могу запускать сценарии как Sys Admin.Еще один момент заключается в том, что этот сайт отображает токен при нажатии кнопки «Войти».Есть идеи, почему решение не работает?

HTML:

<form id="mainform" method="post" autocomplete="off" action="/URL/" onsubmit="submitHandler(); return true;">
<table class="loginTable">

...

<tr>
  <td colspan="2" class="colSpanRow" id="loginSubmitTd">
    <input type="submit" value="Log in" tabindex="4" id="loginSubmit" />
  </td>
</tr>

PowerShell:

$ie = New-Object -ComObject 'InternetExplorer.Application'
$ie.Visible = $true
$ie.Navigate("url")

Start-Sleep -s 2

$link = @($ie.Document.GetElementsByTagName('A')) |
        Where-Object {$_.InnerText -eq 'I accept'}
$link.Click()

Start-Sleep -s 5

$ie.Document.IHTMLDocument3_getElementById('username').Value = "username"
$ie.Document.IHTMLDocument3_getElementById('password').Value = "pw"

$submitButton = @($ie.Document.IHTMLDocument3_getElementsByTagName('input')) |
                Where-Object {$_.Value -eq 'Log in'}
Write-Host $submitButton.id
$submitButton.Click()

1 Ответ

0 голосов
/ 26 августа 2018

Я предлагаю вам не использовать IHTMLDocument3_getElementsByTagName и использовать функцию getElementsByTagName.

В вашем коде это будет

$submitButton = @($ie.Document.getElementsByTagName('input')) | Where-Object {$_.value -eq 'Log in'}

или, может быть, даже лучше:

$submitButton = $ie.Document.getElementById('loginSubmit')
...