0

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

按钮代码:

webBrowser1.Document.GetElementById("Email").SetAttribute("value",credentials[0]);
webBrowser1.Document.GetElementById("Passwd").SetAttribute("value", credentials[1]);
webBrowser1.Document.GetElementById("signIn").InvokeMember("submit");

所以我现在的问题是它没有点击登录按钮。如果我点击开始,它会自动输入我的电子邮件和密码,但不会点击登录按钮。

有谁知道为什么?

4

3 回答 3

0

用于InvokeMember("click")

但是,如果您遇到类似的问题,请检查某些 ajax 函数是否仍在执行。

即使在仍然加载 ajax 调用的情况下会触发文档加载事件,但在 ajax 函数完成之前,您可能无法获得完整的 Document。

为此,您需要等到它被加载,然后调用该成员。 查看这篇文章,了解如何等待 ajax 加载完成。

于 2013-07-14T12:22:23.273 回答
0

您可以尝试在登录按钮上使用 jQuery 调用单击事件。

另外,方法名称不是提交,名称是signIn

于 2013-07-14T10:07:06.600 回答
0

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

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();
    }

这以前对我有用。

于 2013-07-14T10:12:34.720 回答