C#WPF-等待页面加载我有一个按钮,单击它会打开一个不可见的网页,导航到一个URL,将信息输入一个框中,按下一个按钮,然后抓取屏幕以获取信息。我的代码的骨架基本上都在点击:WebBrowserwb=newWebBrowser;wb.Visibility=System.Windows.Visibility.Hidden;wb.Navigate("http://somepage.com");这就是它变得棘手的地方。我正在寻找一种方法来确保在尝试输入数据或抓取屏幕之前加载页面。我已经看到几个线程讨论Navigated、IsLoaded、LoadCompleted和BackgroundWork的东西,但我无法让它们中的任何一个工作。哪个是确保页面完全加载的最佳选择?你如何获得你选择的方法?我也无法从屏幕上获取数据,因为WPF不使用相同的GetElementByID。编辑:根据下面的评论,这是我得到的错误:将其置于无限循环中,因为wb似乎没有加载。事件'System.Windows.Controls.WebBrowser.LoadCompleted'只能出现在+=或-=的左侧privatevoidGetData_Click(objectsender,RoutedEventArgse){intx=0;HTML文档文档;wb=newWebBrowser();wb.Visibility=System.Windows.Visibility.Visible;wb.Navigate("somesite.com");doc=wb.Documentasmshtml.HTMLDocument;wb.LoadCompleted+=wb_LoadCompleted;doc.getElementById("txt_One").innerText="有效";}voidwb_LoadCompleted(objectsender,NavigationEventArgse){}生成的错误{filename}中类型为“System.NullReferenceException”的未处理异常附加信息:未将对象引用设置为对象的实例。webbrowser控件有一个loadedevent(你有):LoadCompleted:当dom完全加载时触发。绑定事件并在事件方法中获取文档,而不是立即获取。//root是在XAMLpublicWebBrowserwebb中标识的一个网格元素;publicMainWindow(){InitializeComponent();webb=newWebBrowser();webb.Visibility=System.Windows.Visibility.Hidden;root.Children.Add(webb);webb.LoadCompleted+=webb_LoadCompleted;webb.Navigate("http://www.google.com");}voidwebb_LoadCompleted(objectsender,NavigationEventArgse){MessageBox.Show("页面加载完成");mshtml.HTMLDocumentdoc=webb.Documentasmshtml.HTMLDocument;mshtml.HTMLInputElementobj=doc.getElementById("gs_taif0")asmshtml.HTMLInputElement;mshtml.HTMLFormElementform=doc.forms.item(Type.Missing,0)asmshtml.HTMLFormElement;webb.LoadCompleted-=webb_LoadCompleted;//删除旧事件方法绑定webb.LoadCompleted+=webb_LoadCompleted2;//绑定事件的新方法obj.value="testsearch";表单提交();//在表单或搜索上执行发布}//发布信息后触发的第二个事件voidwebb_LoadCompleted2(objectsender,NavigationEventArgse){MessageBox.Show("发布后第二次完成页面加载");你需要把doc=wb.Documentasmshtml.HTMLDocument;在loadcompleted事件中,因为在加载完成之前,您无法获取文档。以上就是C#学习教程:C#WPF-等待加载页面全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
