Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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#WebBrowser调用问题_C# - Fatal编程技术网

C#WebBrowser调用问题

C#WebBrowser调用问题,c#,C#,我正在使用网络浏览器登录facebook。一切正常,但问题是当我调用按钮单击时,我需要检查密码是否正确,但是,检查似乎发生在按钮被调用之前,这毫无意义,因为检查代码在调用之后 private void Facebook_Login(String username, String password) { webBrowser1.Url = new Uri("http://m.facebook.com"); while (webBrowser1.ReadyS

我正在使用网络浏览器登录facebook。一切正常,但问题是当我调用按钮单击时,我需要检查密码是否正确,但是,检查似乎发生在按钮被调用之前,这毫无意义,因为检查代码在调用之后

private void Facebook_Login(String username, String password)
    {
        webBrowser1.Url = new Uri("http://m.facebook.com");

        while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();

        HtmlElementCollection inputs = webBrowser1.Document.GetElementsByTagName("input");
        foreach(HtmlElement input in inputs)
        {
            if (input.GetAttribute("name") == "email") 
            {
                input.SetAttribute("value", "jamesjeffery@hotmail.co.uk");
            }
            if (input.GetAttribute("name") == "pass")
            {
                input.SetAttribute("value", "kelaroostj"); // dont worry that pass wont work lol.
            }
            if (input.GetAttribute("name") == "login")
            {
                input.InvokeMember("click");
            }
        }

        while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();

        HtmlElementCollection bs = webBrowser1.Document.GetElementsByTagName("b");
        foreach(HtmlElement b in bs)
        {
            MessageBox.Show(b.InnerHtml);
        }

        Log_Message("Logged into Facebook with: jamesjeffery@hotmail.co.uk");
    }

这是因为您正在遍历所有HTML元素。您只需要按“逻辑”顺序编写此代码,但这并不意味着HTMLElementCollection也包含此代码

如果HTML按钮是行中的第一个元素,那么将发生的第一件事就是单击按钮

HtmlElement Username = Browsers[0].Document.GetElementById("name");
HtmlElement Password = Browsers[0].Document.GetElementById("pass");
HtmlElement LoginBtn = Browsers[0].Document.GetElementById("login");

Username.SetAttribute("value", "jamesjeffery@hotmail.co.uk");
Password.SetAttribute("value", "kelaroostj");
LoginBtn.InvokeMember("click");

这是假设元素的ID如上所述。

这是因为您正在遍历所有HTML元素。您只需要按“逻辑”顺序编写此代码,但这并不意味着HTMLElementCollection也包含此代码

如果HTML按钮是行中的第一个元素,那么将发生的第一件事就是单击按钮

HtmlElement Username = Browsers[0].Document.GetElementById("name");
HtmlElement Password = Browsers[0].Document.GetElementById("pass");
HtmlElement LoginBtn = Browsers[0].Document.GetElementById("login");

Username.SetAttribute("value", "jamesjeffery@hotmail.co.uk");
Password.SetAttribute("value", "kelaroostj");
LoginBtn.InvokeMember("click");
这是假设元素的ID如上所述