C# 我能';t使用wpf设置web文本框值

C# 我能';t使用wpf设置web文本框值,c#,wpf,webbrowser-control,awesomium,C#,Wpf,Webbrowser Control,Awesomium,你好,我正在做一个自动化程序。程序的开始是登录 这是html标记 <form name="LoginForm" method="post" action="https://admin"> <input type="hidden" name="redirectURL" value="Admin/"> <input type="hidden" name="reason" value="LOGIN_REQUIRED"> <fieldset

你好,我正在做一个自动化程序。程序的开始是登录

这是html标记

<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>
如何设置密码的值?它不使用ID?非常感谢。它使用name属性

我试着使用内置的网络浏览器,我可以让它工作

代码如下:

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);
                        }
                    }
                }
编辑: 解决方案:我把冬虫夏草换成了壁虎。然后用geckofx代码转换上面的代码

wb.ExecuteJavascript(String.Format("document.querySelector('input[name=\"password\"]').value = '{0}'", txtPassword.Text));
可以在此处找到JSFIDLE:

试试这个

wb.ExecuteJavascript(String.Format("document.querySelector('input[name=\"password\"]').value = '{0}'", txtPassword.Text));
可以在此处找到JSFIDLE:


查看您的密码输入:

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

input[name=password]

查看您的密码输入:

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

input[name=password]

我试过你的代码,但还是不行。我没有给我错误。它也不会给密码增加值它似乎在这个JSFIDLE上起作用:还看到name='password'应该是name='password'(可能这就是我代码中的问题)我尝试了你的代码,但仍然不起作用。我没有给我错误。它也不会给密码增加值它似乎在这个JSFIDLE上起作用:还看到name='password'应该是name='password'(可能这就是我代码中的问题)它不起作用。但当我使用VisualStudio的webbrowser控件时。它起作用了,它不起作用了。但当我使用VisualStudio的webbrowser控件时。它起作用了