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以前的答案: