Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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.文档方法问题_C#_Winforms_Browser - Fatal编程技术网

C# WebBrowser.文档方法问题

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

我正在尝试制作一个简单的程序,它可以进入一个页面并点击一个按钮。然而,由于某种原因,当我试图在WebBrowser.Document上调用.GetElementByID时,没有可用的,只有Equals、GetHash之类的东西。没有GetElementByID。所以我试着这样做:

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