日期:2014-05-17  浏览次数:21265 次

c# webbrowser 页面跳转求助


        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.DocumentCompleted+=new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
            webBrowser1.Navigate("http://192.168.126.131/dvwa/login.php");
        }
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            webBrowser1.Document.GetElementById("username").InnerText = "admin";
            webBrowser1.Document.GetElementById("password").InnerText = "password";
            webBrowser1.Document.GetElementById("Login").InvokeMember("click");
            
            webBrowser1.Navigate("http://192.168.126.131/dvwa/vulnerabilities/sqli/");
            MessageBox.Show(webBrowser1.Url.ToString());
        
        }



程序如上, MessageBox.Show(webBrowser1.Url.ToString());的输出值应该会是:http://192.168.126.131/dvwa/vulnerabilities/sqli/
但是却是最开始未跳转的URL:"http://192.168.126.131/dvwa/login.php
求解释。。。。
webbroswer

------解决方案--------------------
Navigate 调用后,大概还没有刷新页面,建议在 webBrowser1_DocumentCompleted 中判断是哪个页面加载完成,然后执行不同的动作
------解决方案--------------------
   还没搞定? 很明显的webbrowser页面导航之后, documentcompleted事件并没有开始执行,你就取得了url,当然是之前的了。
   前加判断e.url.AbsoluteUri =XXXXX 然后再获取