C# 网站登录GetElementById(…)
我正试图通过在两个文本框中键入我的凭据来登录我的youtube帐户。 我还有一个按钮和一个网络浏览器。这是: 按钮的代码: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
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加载完成。是的,我现在也找到了。谢谢你,先生!