2017-01-12 3 views
0

Neu bei Powershell. Ich habe mir einige der anderen Beispiele im Stack-Overflow angeschaut, aber keine Lösung gefunden.PowerShell Website-Automatisierung mit getElements

Mein Problem: Ich versuche, ein Formular auszufüllen und kann nicht in ein Eingabefeld für EMAIL einfügen. Ich habe versucht getElementByName und getElementsByTagName und es kann es nicht finden. Ich habe versucht, es durch id="main-content" suchen, aber ich muss es auch falsch gemacht haben.

Putting einen Wert in $pw Arbeit, weil sie eine ID hat, aber ich kann es nicht ohne ID mit den anderen zu arbeiten.

Ich werde irgendwie die E-Mail einen String machen. Ich denke.

Powershell:

While ($ie.busy -eq $true){ 
    [System.Threading.Thread]::Sleep(2000) 
} 
$doc = $ie.document 

$pw = $doc.getElementByID("passwd") 
$pw.value = "$userPW" 

$em = $doc.getElementsByTagName("p") | 
where-object {$_.Name -eq "email"} | 
ForEach-object { $_.value("[email protected]")} 



#$email = $unID + $([char]64) + "DOMAINNAME" + $([char]46) + "com" 
#$em.value = ($email -as [string]) 

HTML-Code:

<div id="main-content" class="main-content"> 
<div class="content-box content-box-outer"> 
    <div class="content-box-content"> 
     <fieldset class="column-left"> 

      <p> 
       <label>Password</label> 
       <input name="passwd" id="passwd" type="password" text="Password" value="" autocomplete="off" class=""> 
      </p> 

      <p> 
       <label>Email</label> 
       <input name="email" type="text" text="Email" value="" class=""> 
      </p> 


     </fieldset> 
     <fieldset class="column-right"> 

      <p> 
       <label>Fax Number</label> 
       <input name="fax" type="text" text="Fax Number" maxlength="64" value="" class=""> 
      </p>    
     </fieldset> 
</div> 
+0

Der Tag-Name eingegeben wird, nicht P. –

+0

Danke Tony, ich dachte, es überhaupt „P“ s aussehen würde und es danach finden .. aber ich bin falsch .. nach dem bearbeiten mit INPUT tun ich dies „doesn bekommen Es gibt keine Methode namens 'value'. ForEach-object {$ _. Wert <<<< ("testtesttest")}“ –

+0

Versuch' $ _. Value = "[email protected]" '' value' ist eine Eigenschaft, keine Methode, und Sie versuchen, um es wie eine Methode zu verwenden. –

Antwort

0

Ihr Skript hat zwei Probleme:

  1. Der E-Mail-Eingang ist ein INPUT-Tag, kein P-Tag, so dass Sie Bedarf:

$em = $doc.getElementsByTagName("input") |

  1. Sie versuchen, den Wert mit einem Methodenaufruf zu setzen, aber value ist eine Eigenschaft, keine Methode, so müssen Sie:

$_.value = "[email protected]"