DOBON.NETプログラミング道掲示板

No34436 の記事


■34436 / )  WebBrowser Control foreachで値が消える
□投稿者/ げんむ 一般人(5回)-(2020/03/19(Thu) 16:25:20)
  • アイコン
    分類:[その他] 

    WebBrowser Controlを使って、任意の値を取得の続きの質問になります。
    
                elems = webBrowser1.Document.GetElementsByTagName("td");
    
                foreach (HtmlElement elem in elems)
                {
                    string style = elem.Style;
    
                    if (!(string.IsNullOrEmpty(style)) && style.Contains("font-weight: bold;"))
                    {
                        HtmlElementCollection a = elem.GetElementsByTagName("A");
                        string href = a[0].GetAttribute("href");
                        Debug.WriteLine(style);
                        Debug.WriteLine(href);
    
                        webBrowser1.Navigate(href);
    			//読み込みを待つ処理をここに書く
                    }
                }
    
    WebBrowserControlに表示されている画面からhrefを取得して、Navigateを使って違うページに移動しています。
    取得したURLをNavigateを使って順に巡ろうとしているのですが、うまくいきません。
    
    例えば、URLを10取得したとします。最初に取得したURLは問題なくNavigateを使って移動できますが、残りの9つのURLには移動することができません。
    ステップ実行で、elems = webBrowser1.Document.GetElementsByTagName("td");の中を確認すると10URL取得できています。
    遷移後に再びforeachに戻るとelemsの中身がなくなっています。
    
    なぜこのような事が起こるんでしょうか?解決するにはどうしたらいいのでしょうか?

違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -