2017-09-24 73 views
0

我有一个需要导航到一些网站,点击一些按钮的应用程序/链接导航,并最终将文件直接下载。WebBrowser控件导航不工作,Windows 10

我试图用硒Firefox的驱动程序,但这种不断打破每次火狐得到更新。

,我决定使用WebBrowser控件,而不是和我检查了所有在线的例子,但由于某些原因,导航是不会发生和Documentcompleted事件不点火。

我创建了一个简单的Windows窗体来测试应用程序,并把控制它,它是可见的。当代码命中导航方法,它卡住,因为它从来没有执行DocumentCompleted事件。我试图删除wait方法,但在WebControl的文档保持为空,并且永远不会执行DocumentCompleted。在Documentcompleted断点从不打(我把断点处,如果级别)

我使用Visual Studio 2015年,我已经安装了Windows 10专业。我也有IE 11和Edge,但我的默认浏览器是Chrome。 (我不认为这使用铬) Windows应用程序正在运行.NET 4.5.2

客户端也运行Windows 10.我读了一些关于Windows 10更新潜在问题的回复,并更改注册表或卸载某些更新,但我真的不想走这条路。任何想法或替代?

这里是背后 形式的代码,我要前往,该网页是公开的,不需要登录。

public partial class WebBrowserForm : Form 
    { 

     bool pageLoaded = false; 

     public WebBrowserForm() 
     { 
      InitializeComponent(); 
     } 

     public void TestDownload() 
     { 
      WebBrowser browser = new WebBrowser(); 
      browser.Visible = true; 
      browser.AllowNavigation = true; 

      pageLoaded = false; 
      browser.DocumentCompleted += Browser_DocumentCompleted; 
      browser.Navigate("http://apps.ahca.myflorida.com/dm_web/"); 
      waitForPageLoading(); 
       //do something else here once the page is loaded 

     } 

     private void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     { 
      if ((sender as WebBrowser).ReadyState == System.Windows.Forms.WebBrowserReadyState.Complete) 
      { 
       pageLoaded = true; 
      } 
     } 


     void waitForPageLoading() 
     { 
      while (pageLoaded == false) 
      { 
       Thread.Sleep(3000);// keep sleeping until the page is ready 
      } 
     } 

     private void btnTest_Click(object sender, EventArgs e) 
     { 
      TestDownload(); 
     } 
    } 
+0

我尝试了Windows 7的机器上仍然无法正常工作 – user3547425

回答

1

由于您的浏览器控件是在窗体上,

你不应该做

web浏览器浏览器=新的web浏览器();

你实例化一个新的实例。