WebBrowser isn't working

本文关键字:working isn WebBrowser | 更新日期: 2023-09-27 18:26:28

我有这个代码:

这是一个按钮按下:

int part = 0;
web.Navigate(loginURL.Text + "/auth/login");
wait.Enabled = true;

这是一个定时器"等待",间隔设置为6000:

if (part == 0)
            {
                part = 2;
                web.Document.GetElementById("idLoginUserName").SetAttribute("value", user);
                web.Document.GetElementById("idLoginPassword").SetAttribute("value", pass);
                web.Document.GetElementById("idLoginBtn").InvokeMember("click");
            }
            if (part == 2)
            {
                web.Navigate(fullURL.Text);
                part = 3;
            }
            if (part == 3)
            {
                web.Document.GetElementById("title").SetAttribute("value", title.Text);
            }
            if (part == 4)
            {
                web.Navigate("www.vbulletin.com/forum/auth/logout");
                part = 5;
            }
            if (part == 5)
            {
                part = 0;
                web.Navigate(loginURL.Text + "/auth/login");
            }

按钮按下工作正常,但:

 web.Document.GetElementById("idLoginUserName").SetAttribute("value", user);
                    web.Document.GetElementById("idLoginPassword").SetAttribute("value", pass);
                    web.Document.GetElementById("idLoginBtn").InvokeMember("click");

什么也不做。文本没有更改,按钮没有点击,等等。我检查了一遍又一遍ID,结果是正确的。

loginURL.Text就是这个

WebBrowser isn't working

我猜你试图在导航完成之前访问文档,这对我来说很有效…

web.DocumentCompleted += (s, e) =>
{
    web.Document.GetElementById("idLoginUserName").SetAttribute("value", user);
    web.Document.GetElementById("idLoginPassword").SetAttribute("value", pass);
    web.Document.GetElementById("idLoginBtn").InvokeMember("click");
};
web.Navigate("http://www.vbulletin.com/forum/auth/login");

您没有义务使用C#做所有事情。如果从应用程序的角度来看,你将嵌入式网页视为一个黑盒,那么你可以使用脚本赋予它内部行为,而jQuery使这类东西变得简短、甜蜜,并且对后来的人来说非常清晰,还有一个额外的好处,那就是用功能琐碎但往往复杂的UI行为代码不会污染应用程序逻辑。

$(function(){
  $("#idLoginUserName").val(user);
  $("#idLoginPassword").val(password);
  $("#idLoginBtn").click();
});