Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#控制台应用程序WebBrowser ReadyState从未完成_C#_Asp.net_Console Application - Fatal编程技术网

c#控制台应用程序WebBrowser ReadyState从未完成

c#控制台应用程序WebBrowser ReadyState从未完成,c#,asp.net,console-application,C#,Asp.net,Console Application,我使用WebBrowser从某个网页上删除数据,该网页的javascript加载持续了5-8秒。(wb.ReadyState!=WebBrowserReadyState.Complete)永远不会发生。怎么可能呢 public static String data { get; set; } [STAThread] static void Main(string[] args) { string pathToWrite = @"C:\ABC.csv"; string nodeli

我使用WebBrowser从某个网页上删除数据,该网页的javascript加载持续了5-8秒。(wb.ReadyState!=WebBrowserReadyState.Complete)永远不会发生。怎么可能呢

public static String data { get; set; }
[STAThread]
static void Main(string[] args)
{
    string pathToWrite = @"C:\ABC.csv";
    string nodelist = @"C:\WebPagelist.txt"; //{"001", "abc.com/mvc/001" /r/n "002", "abc.com/mvc/002" /r/n "003", "abc.com/mvc/003" /r/n ... "499", "abc.com/mvc/499"}
    string line;
    using (StreamReader reader = new StreamReader(nodelist, Encoding.UTF8))
    {
        while ((line = reader.ReadLine()) != null)
        {
            string[] node = line.Split('\t');
            Download(node[0], node[1]);
        }
    }
    using (var PlayerFile = new StreamWriter(pathToWrite, true))
    {
        PlayerFile.Write(data);
        PlayerFile.Flush();
    }
}
static void Download(string cityName, string url)
{
    WebBrowser wb = new WebBrowser();
    wb.ScriptErrorsSuppressed = true;
    wb.Navigate(url);

    while (wb.ReadyState != WebBrowserReadyState.Complete)
    {
         Application.DoEvents();
    }
    string A = wb.Document.GetElementById("cur_A").InnerText;
    string B = wb.Document.GetElementById("cur_B").InnerText;
    string C = wb.Document.GetElementById("cur_C").InnerText;
    data  += A + "," + B +"," + C + + Environment.NewLine;
}

看到了吗:我看到了
asp.net
控制台应用程序
被标记,但这看起来像是一个WinForms应用程序。您应该执行
Debug.WriteLine(wb.ReadyState)
Thread.Sleep(100)
,以便在
while
循环中进行调试。这也可以被重写,以利用
wb.DocumentCompleted
事件并阻止线程,直到该事件发生(最好为此打开一个新线程/任务)