为什么WebBrowser.导航返回空HttpDocument
本文关键字:HttpDocument 返回 导航 WebBrowser 为什么 | 更新日期: 2023-09-27 18:09:27
我试过了:
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阻塞)
因为下载html需要时间。没有人想要等待的时间,特别是用户界面线程,沙漏现在不会做了。
它显式地告诉您何时可用。documentcomplete事件事件。
你必须抽吸一个消息循环来获得那个事件。
因为Navigate
是异步的,当你读取Document
属性的值时,导航甚至还没有开始
如果您查看该页上的示例,您将看到要读取"当前"URL,它需要订阅Navigated
事件;同样适用于阅读Document
。此事件的文档说明:
处理Navigated事件,以便在WebBrowser控件已导航到新文档。当Navigated事件发生时,表示新文档已开始加载,这意味着您可以访问通过Document、DocumentText和加载的内容DocumentStream属性。