C# 网站登录GetElementById(…)

C# 网站登录GetElementById(…),c#,youtube,getelementbyid,C#,Youtube,Getelementbyid,我正试图通过在两个文本框中键入我的凭据来登录我的youtube帐户。 我还有一个按钮和一个网络浏览器。这是: 按钮的代码: webBrowser1.Document.GetElementById("Email").SetAttribute("value",credentials[0]); webBrowser1.Document.GetElementById("Passwd").SetAttribute("value", credentials[1]); webBrowser1.Document

我正试图通过在两个文本框中键入我的凭据来登录我的youtube帐户。 我还有一个按钮和一个网络浏览器。这是:

按钮的代码:

webBrowser1.Document.GetElementById("Email").SetAttribute("value",credentials[0]);
webBrowser1.Document.GetElementById("Passwd").SetAttribute("value", credentials[1]);
webBrowser1.Document.GetElementById("signIn").InvokeMember("submit");
所以我现在的问题是它没有点击登录按钮。如果我单击开始,它会自动键入我的电子邮件和密码,但不会单击登录按钮


有人知道原因吗?

您可以尝试使用登录按钮上的jQuery调用click事件


另外,方法名不是submit,名称是signIn

我以前做过,但还有几个步骤

using mshtml;

    static private SHDocVw.WebBrowser_V1 Web_V1;
    Form1_Load ()
    {
        Web_V1 = (SHDocVw.WebBrowser_V1)webBrowser1.ActiveXInstance;
    }

    webBrowser1_DocumentComplete ()
    {
        HTMLDocument pass = new HTMLDocument(Web_V1.Document);
        HTMLInputElement passBox = (HTMLInputElement)pass.all.item("Passwd", 0);
        passBox.value = "Password"; 
        HTMLInputElement logBox = (HTMLInputElement)pass.all.item("Email", 0);
        logBox.value = "Email";
        HTMLInputElement submit = (HTMLInputElement)pass.all.item("signIn", 0);
        submit.click();
    }
这对我以前很有用。

为此使用
InvokeMember(“单击”)

但是,如果您面临类似的问题,那么请检查某个ajax函数是否仍在执行

即使在仍在加载ajax调用的情况下触发document load事件,在ajax函数完成之前,您可能无法获取完整的文档

为此,您需要等待它被加载,然后调用该成员。
关于如何等待ajax加载完成。

是的,我现在也找到了。谢谢你,先生!