C# WebBrowser.文档方法问题
我正在尝试制作一个简单的程序,它可以进入一个页面并点击一个按钮。然而,由于某种原因,当我试图在WebBrowser.Document上调用.GetElementByID时,没有可用的,只有Equals、GetHash之类的东西。没有GetElementByID。所以我试着这样做:C# WebBrowser.文档方法问题,c#,winforms,browser,C#,Winforms,Browser,我正在尝试制作一个简单的程序,它可以进入一个页面并点击一个按钮。然而,由于某种原因,当我试图在WebBrowser.Document上调用.GetElementByID时,没有可用的,只有Equals、GetHash之类的东西。没有GetElementByID。所以我试着这样做: private void button1_Click(object sender, RoutedEventArgs e) { webBrowser1.Navigate("http
private void button1_Click(object sender, RoutedEventArgs e)
{
webBrowser1.Navigate("http://kdp.amazon.com");
HtmlDocument doc = (HtmlDocument)webBrowser1.Document;
doc.GetElementByID("whatever");
}
我得到了这个错误:
无法将类型为“mshtml.HTMLDocumentClass”的COM对象强制转换为类
键入“System.Windows.Forms.HtmlDocument”。类型的实例
表示COM组件不能强制转换为不表示
COM组件;但是,只要
底层COM组件支持对的IID的QueryInterface调用
界面
我是不是漏掉了一封推荐信?我在stackoverflow上找到的所有教程都说调用webBrowser.Document上的方法,但我没有可用的方法。听起来您使用的是非托管webBrowser ActiveX控件,而不是托管包装器
将控件更改为托管
System.Windows.Forms.WebBrowser
哪一行出现错误?什么类型是webBrowser1
?webBrowser1是我添加到应用程序中的WPF控件。htmldocument doc=(htmldocument)行导致问题。请注意,这行代码甚至不应该在那里,我应该能够在webbrowser1.Document上调用.GetElementByID。我只是想把错误放在这里,因为这样可能会更清楚您在使用WinForms或WPF时发生了什么?webbrowser1的确切编译时类型是什么?异常与代码段不匹配,这通常是由线程问题引起的。但是故障模式非常清楚,在触发DocumentCompleted事件之前,您无法访问Document属性。将代码移动到该event.System.Windows.Forms.WebBrowser的事件处理程序WebBrowser=new System.Windows.Forms.WebBrowser();webBrowser1.Navigate(“);我以前做过,但当我单击启动此序列的按钮时,我看到发生了一些事情(光标等待动画)但是应该是浏览器的控件中没有发生任何事情。希望这是有意义的。如果你真的这样做了,你不会出现错误。对,我没有,但我也看不到在应用程序窗口中加载页面。嗯,是的。在一个WebBrowser
中加载页面不会影响另一个WebBrowser
。