2017-02-03 4 views
1

setzen Hallo, ich mache ein Automatisierungsprogramm. der Start des Programms istIch kann Web Textbox Wert nicht mit wpf

und hier ist der HTML-Tag

<form name="LoginForm" method="post" action="https://admin"> 
    <input type="hidden" name="redirectURL" value="Admin/"> 
    <input type="hidden" name="reason" value="LOGIN_REQUIRED"> 

    <fieldset style="padding: 5px 5px 5px 5px;"> 
    <table style="width: 100%"> 
     <tr> 
      <th style="text-align: left"> 
       <label for="login"> 
       E-mail Address 
       </label> 
      </th> 
      <td style="width: 65%"> 
       <input type="text" name="login" maxlength="80" value="" id="login" style="width:98%"> 
      </td> 
     </tr> 
     <tr> 
      <td></td> 
      <td> 
       <div class="field_error" style="clear: left;"> 

       </div> 
      </td> 
     </tr> 
     <tr> 
      <th style="text-align: left"> 
       <label for="password"> 
       Password 
       </label> 
      </th> 
      <td> 
       <input type="password" name="password" maxlength="64" value="" style="width:98%"> 
      </td> 
     </tr> 
     <tr> 
      <td></td> 
      <td> 
       <div class="field_error" style="clear: left;"> 

       </div> 
      </td> 
     </tr> 
    </table> 

    <hr style="visibility: hidden;"/> 

    <div style="width: 60px; margin-left: auto; margin-right: auto"> 
     <input type="submit" name="action" value="Log In" style="text-align:center;" class="generic_button"> 
    </div> 
    </fieldset> 
</form> 

aber, warum ich den Wert des Passworts Textbox festlegen kann nicht anmelden.

im mit wpf und awesomium

ich die Textbox Wert des Benutzernamen festlegen können, aber ich kann den Wert des Passworts nicht gesetzt

hier ist mein Code

wb.ExecuteJavascript(String.Format("document.querySelector('#login').value = '{0}'", txtUsername.Text)); 
wb.ExecuteJavascript(String.Format("document.querySelector('#password').value = '{0}'", txtPassword.Text)); 

wie kann Ich setze den Wert des Passwortes? Es verwendet keine ID? Danke. verwenden Sie es Attribut name

Ich habe versucht, die in Web-Browser gebaut mit, und ich kann es

hier ist der Code funktioniert:

System.Windows.Forms.HtmlElementCollection elems = wb.Document.GetElementsByTagName("input"); 
       foreach (System.Windows.Forms.HtmlElement elem in elems) 
       { 
        String nameStr = elem.GetAttribute("name"); 
        if (nameStr != null && nameStr.Length != 0) 
        { 
         if (nameStr == "login") 
         { 
          elem.SetAttribute("value", txtUsername.Text); 
         } 
         if (nameStr == "password") 
         { 
          elem.SetAttribute("value", txtPassword.Text); 
         } 
        } 
       } 

Edit: Lösung: Ich habe die awesomium GeckoFX. und konvertieren Sie den Code oben mit dem Code von GeckoFX

Antwort

2

Versuchen Sie, diese

wb.ExecuteJavascript(String.Format("document.querySelector('input[name=\"password\"]').value = '{0}'", txtPassword.Text)); 

JSFiddle sind hier zu finden:

https://jsfiddle.net/L4yrjfmz/

+0

Ich habe versucht Ihren Code, aber es funktioniert immer noch nicht. Ich gebe mir keinen Fehler. Es fügt auch keinen Wert für das Passwort –

+0

Es scheint zu diesem JsFiddle zu arbeiten: https://jsfiddle.net/L4yrjfmz/ Auch sah, dass name = 'password' sollte name = \ "password \" (Vielleicht ist das das Problem in meinem Code) –

+0

Der aktualisierte Code, den Sie gepostet haben, funktioniert. Danke –

3

Schauen Sie sich Ihr Passwort-Eingabe:

<input type="password" name="password" maxlength="64" value="" style="width:98%"> 

es hat kein ID-Attribut, in CSS-Selektoren eine # Präfix bezieht sich auf das ID-Attribut, in Ihrem Fall können Sie einen der folgenden Wahlschalter für die Passworteingabe verwenden:

input[type=password] 

input[name=password] 
+0

es funktioniert nicht. aber wenn ich die Webbrowser-Steuerung des visuellen Studios verwende. Es klappt –