2017-09-24 22 views
0

一部のサイトへの移動が必要なアプリケーションがあります。一部のボタン/リンクをクリックして、直接ファイルをダウンロードしてダウンロードします。WebBrowserコントロールのナビゲーションが機能しないWindows 10

私はセレンFirefoxドライバーを使用しようとしましたが、これはFirefoxがアップデートを取得するたびに壊れています。

代わりにWebBrowser Controlを使用することにしました。私はすべての例をオンラインで確認しましたが、何らかの理由でナビゲーションが行われていないため、Documentcompletedイベントが発生していません。

私は簡単なWindowsフォームを作成してアプリケーションをテストし、その中にコントロールを置くと表示されます。コードがNavigateメソッドにヒットすると、DocumentCompletedイベントが実行されないため、コードがスタックされます。私はwaitメソッドを削除しようとしましたが、WebControlのドキュメントはnullのままで、DocumentCompletedは決して実行されません。 Documentcompletedのブレークポイントは決してヒットしません(私はifレベルにブレークポイントを設定します)

私はVisual Studio 2015を使用していますが、Windows Pro 10がインストールされています。 IE 11とEdgeの両方がありますが、デフォルトのブラウザはChromeです。 (私はこれが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

あなたのWebBrowserコントロールをフォーム上にあるので、

あなたは

のWebBrowserブラウザ=新しいWebBrowserコントロールを()すべきではありません。

新しいインスタンスをインスタンス化しています。

関連する問題