Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#无ID登录站点_C#_Html_Winforms - Fatal编程技术网

C#无ID登录站点

C#无ID登录站点,c#,html,winforms,C#,Html,Winforms,我试图创建一个功能,将自动登录到一个网站的人 frm.Login和frm.Password在那里,因为我正在从另一个表单导入字符串。另一种形式是他们输入凭证的地方 免责声明: 我没有访问此网站的权限 HTML代码 <input type="email" required="" size="21" name="email"> //email <input type="password" required="" name="password" size="21"> //pas

我试图创建一个功能,将自动登录到一个网站的人

frm.Login和frm.Password在那里,因为我正在从另一个表单导入字符串。另一种形式是他们输入凭证的地方

免责声明: 我没有访问此网站的权限

HTML代码

<input type="email" required="" size="21" name="email"> //email
<input type="password" required="" name="password" size="21"> //password
<input type="submit" name="submit" value="Sign in"> //button to sign in.
单击按钮的代码

public void ClickButton(string type)
{
    var button = webBrowser1.Document.GetElementsByTagName("submit")
             .Cast<HtmlElement>()
             .FirstOrDefault(m => m.GetAttribute("type") == type);
    if (button != null)
        button.InvokeMember("click");
}
public void点击按钮(字符串类型)
{
var button=webBrowser1.Document.GetElementsByTagName(“提交”)
.Cast()
.FirstOrDefault(m=>m.GetAttribute(“类型”)==type);
如果(按钮!=null)
按钮。调用成员(“单击”);
}
错误:Test.exe中发生“System.NullReferenceException”类型的未处理异常。其他信息:对象引用未设置为对象的实例

给出错误的行:
webBrowser1.Document.GetElementsByTagName(“输入”).GetElementsByName(“电子邮件”)[0].SetAttribute(“值”,frm.Login)


用于单击按钮的代码。它接受“登录”值并单击它

 foreach (HtmlElement el in elCol)
                {
                    if (el.GetAttribute("value").Equals("Sign in"))
                    {
                        el.InvokeMember("click");
                    }
                }

您的问题是什么?如何将winforms应用程序中的字符串传递到站点的登录和密码文本框中…一旦导航到站点,您需要等待站点完全加载。现在,您可以立即设置可能失败的文本框值。这个错误正是我所想的。webBrowser有一个用于加载文档的事件。您需要等待DocumentCompleted事件:查看以下示例:
 foreach (HtmlElement el in elCol)
                {
                    if (el.GetAttribute("value").Equals("Sign in"))
                    {
                        el.InvokeMember("click");
                    }
                }