public Form1()
{
InitializeComponent(); this.webBrowser1.Navigate(你的登录网址);
this.webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(webBrowser1_Navigated);// 注册 Navigated 导航完成后 事件
}private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
this.webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(webBrowser1_Navigating); // 第一次导航完成后注册 Navigating 导航开始之前 事件
}private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
System.Diagnostics.Process.Start(e.Url.ToString());
e.Cancel = true;
this.webBrowser1.Navigated -= new WebBrowserNavigatedEventHandler(webBrowser1_Navigated);
this.webBrowser1.Navigating -= new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
}Session 保存在服务器端应该不受这影响
{
InitializeComponent(); this.webBrowser1.Navigate(你的登录网址);
this.webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(webBrowser1_Navigated);// 注册 Navigated 导航完成后 事件
}private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
this.webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(webBrowser1_Navigating); // 第一次导航完成后注册 Navigating 导航开始之前 事件
}private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
System.Diagnostics.Process.Start(e.Url.ToString());
e.Cancel = true;
this.webBrowser1.Navigated -= new WebBrowserNavigatedEventHandler(webBrowser1_Navigated);
this.webBrowser1.Navigating -= new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
}Session 保存在服务器端应该不受这影响
我试用了您的代码,但是还没模拟登陆,就在IE打开了……
在界面上一个Login按钮单击事件中。
this.webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
这行放在 Login 按钮单击事件 第一行试试
现在的情况是WebBrwoser中打开了登陆后的Web页面,同时,IE也打开了。
可是IE的那个处理没有登陆的状态,WebBrowser中的那个则正常的登陆状态。
{
webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(webBrowser1_Navigated); System.Windows.Forms.WebBrowser webBrowser = webBrowser1; HtmlDocument htmlDoc = null; try
{
htmlDoc = webBrowser.Document; if (htmlDoc == null)
{
throw new Exception("HtmlDoc载入出错!");
} HtmlElement eleUuser = htmlDoc.GetElementById("txtUserName");
HtmlElement elePass = htmlDoc.GetElementById("txtPassword");
HtmlElement eleLogin = htmlDoc.GetElementById("loginBtn"); eleUuser.SetAttribute("value", userName);
elePass.SetAttribute("value", userPass);
Thread.Sleep(500);
eleLogin.InvokeMember("click");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
htmlDoc = null;
}
}
然后点Login,模拟填入用户,密码,模拟点击“登陆”
谢谢!
this.webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
不是 Navigated
另外把其它地方对 Navigated 这个事件的注册去掉