Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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.Navigate返回空HttpDocument?_C# - Fatal编程技术网

C# 为什么WebBrowser.Navigate返回空HttpDocument?

C# 为什么WebBrowser.Navigate返回空HttpDocument?,c#,C#,我试过: var browser1 = new WebBrowser(); browser1.Navigate("https://zikiti.co.il/"); HtmlDocument document = browser1.Document; 但browser.Document为空 为什么? 我做错了什么 public static void FillForm() { browser1 = new WebBrowser(); bro

我试过:

var browser1 = new WebBrowser();
browser1.Navigate("https://zikiti.co.il/");    
HtmlDocument document = browser1.Document;
但browser.Document为空

为什么?

我做错了什么

    public static void FillForm()
    {
        browser1 = new WebBrowser();
        browser1.Navigate(new Uri("https://zikiti.co.il/"));

        browser1.Navigated += webBrowser1_Navigated;
        Thread.CurrentThread.Join();
    }

    private static void webBrowser1_Navigated(object sender,
WebBrowserNavigatedEventArgs e)
    {
        HtmlDocument document = browser1.Document;
        System.Console.WriteLine();
    }
应用程序被卡住了。 顺便问一下,有没有更简单的方法来填写和提交这份表格?我无法在Fiddler中看到请求头,因为页面总是被JS阻止。

因为它是异步的,而且在读取文档属性值时导航还没有启动

如果您查看该页面上的示例,您将看到要读取当前URL,它需要订阅事件;这同样适用于阅读文档。此事件的文档说明:

处理导航事件以在WebBrowser 控件已导航到新文档。当导航的事件 发生时,新文档已开始加载,这意味着您可以访问 通过文档、DocumentText和 文档流属性

因为它是异步的,并且在您读取文档属性的值时导航还没有启动

如果您查看该页面上的示例,您将看到要读取当前URL,它需要订阅事件;这同样适用于阅读文档。此事件的文档说明:

处理导航事件以在WebBrowser 控件已导航到新文档。当导航的事件 发生时,新文档已开始加载,这意味着您可以访问 通过文档、DocumentText和 文档流属性


因为下载html需要时间。没有人愿意等待的时间,特别是用户界面线程,沙漏现在不会

它明确地告诉您它何时可用。记录已完成的事件


您必须启动一个消息循环来获取该事件。

因为下载html需要时间。没有人愿意等待的时间,特别是用户界面线程,沙漏现在不会

它明确地告诉您它何时可用。记录已完成的事件


您必须启动一个消息循环来获取该事件。

实际上,您也可以在先前触发的导航事件之后执行此操作;这里已经明确提到了。不,那个事件只告诉你它开始下载了。还没有有效的文档属性。刚刚测试过,文档在导航后确实有效。如果不是这样,那将是非常糟糕的文档:当导航事件发生时,新文档已经开始加载,这意味着您可以通过文档[…]属性访问加载的内容;这里已经明确提到了。不,那个事件只告诉你它开始下载了。还没有有效的文档属性。刚刚测试过,文档在导航后确实有效。如果不是这样的话,这将是非常糟糕的文档:当导航事件发生时,新文档已经开始加载,这意味着您可以通过文档[…]访问加载的内容属性。@EladBenda:Navigated文档的第一行表示,当您这样做时,它也可以工作。@EladBenda:Navigated文档的第一行表示,当您这样做时,它也可以工作。请参阅@Hans Passant以前的答案:请参阅@Hans Passant以前的答案: