Klicken Sie auf <BUTTON> in HTML-Seite

<button type="submit">Login</button>

Ich versuche, klicken Sie auf/senden Sie die oben-Taste mithilfe von Windows Powershell. Ich habe versucht den folgenden code:

$submitButton = $doc.documentElement.getElementsByClassName('button') |
                Select-Object -First 1
$submitButton.click()

bringt wieder diese Fehlermeldung:

Kann man nicht nennen eine Methode eines null-Wert Ausdruck. 
ps1:15 char:1 
+ $submitButton festgelegt = $doc.documentElement.getElementsByClassName('button') | ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException 
+ FullyQualifiedErrorId : InvokeMethodOnNull 

Sie können das aufrufen einer Methode auf null-Wert Ausdruck. 
ps1:16 char:1 
+ $submitButton festgelegt.klicken Sie auf() 
+ ~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException 
+ FullyQualifiedErrorId : InvokeMethodOnNull

Ich habe auch versucht diesen code:

$loginBtn = $ie.Document.getElementsById('input') |
            Where-Object {$_.Type -eq 'button' -and $_.Value -eq 'LoginButton'}
$loginBtn.click()

aber auch dies bringt wieder den gleichen Fehler wie vorher.

mein powershell-code in voller Länge:

$username='USERNAME' 
$password='PASSWORD'

$ie = New-Object -ComObject 'internetExplorer.Application'
$ie.Visible= $true
$ie.Navigate("URL EXAMPLE")

while ($ie.Busy -eq $true){Start-Sleep -seconds 1;}   

$Open = $ie.Document.getElementByID('has-account')
$Open.click()

$usernamefield = $ie.Document.getElementByID('login-usr').value =          $username
$passwordfield = $ie.Document.getElementByID('login-pass').value =     $password
$submitButton = $doc.documentElement.getElementsByClassName('button') |     Select-Object -First 2
$submitButton.click() 

BEARBEITEN

Hier ist die Ausgabe der powershell getelementbytagname. Beachten Sie, gibt es keine classname oder ID, wie kommt es geklickt?

className                    : 
id                           : 
tagName                      : BUTTON
parentElement                : System.__ComObject
style                        : System.__ComObject
document                     : mshtml.HTMLDocumentClass
sourceIndex                  : 60
offsetLeft                   : 61
offsetTop                    : 220
offsetWidth                  : 320
offsetHeight                 : 41
offsetParent                 : System.__ComObject
innerHTML                    : Login
innerText                    : Login
outerHTML                    : <button type="submit">Login</button>
outerText                    : Login
parentTextEdit               : System.__ComObject

BEARBEITEN

<form id="sp-login-form" action="#" method="post">
        <button type="button" id="fb-login-btn" class="button fb">Log in with Facebook<span style="position: absolute;"></span></button>
        <em>or</em>
        <div>
          <label for="login-usr">Username</label>
          <input type="text" name="username" id="login-usr" placeholder="Spotify username">
          <label for="login-pass" class="pass">Password</label>
          <input type="password" name="password" id="login-pass" class="pass" placeholder="Password">
          <button type="submit">Login</button>
        </div>
      </form>
  • Wo hast $doc und $ie kommen?
  • Sie müssen möglicherweise ausführen der web-Seite im IE8-Kompatibilitätsmodus um diese Arbeit zu machen.
InformationsquelleAutor user694485 | 2016-05-03
Schreibe einen Kommentar