Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# C登录bot、.NETFramework 4_C#_.net_Wpf_Visual Studio 2013 - Fatal编程技术网

C# C登录bot、.NETFramework 4

C# C登录bot、.NETFramework 4,c#,.net,wpf,visual-studio-2013,C#,.net,Wpf,Visual Studio 2013,我正在尝试做一个简单的web bot,它连接到目标网页,填充登录数据,然后发送信息。不幸的是,我需要它与Windows XP兼容,所以我不得不使用.Net Framework 4 我知道firebug的登录填充栏和密码填充栏ID。通常我会将WebBrowser与GetElementById方法一起使用,但在.NET4中它不是一个选项。例如,在HttpWebRequest类中,是否有其他方法可以做到这一点 我不需要看到任何东西,只需要填写信息,然后单击导航菜单并下载一些数据 编辑:添加“不工作”

我正在尝试做一个简单的web bot,它连接到目标网页,填充登录数据,然后发送信息。不幸的是,我需要它与Windows XP兼容,所以我不得不使用.Net Framework 4

我知道firebug的登录填充栏和密码填充栏ID。通常我会将WebBrowser与GetElementById方法一起使用,但在.NET4中它不是一个选项。例如,在HttpWebRequest类中,是否有其他方法可以做到这一点

我不需要看到任何东西,只需要填写信息,然后单击导航菜单并下载一些数据

编辑:添加“不工作”

它说这个错误:

Error   1   'object' does not contain a definition for 'GetElementById' and no extension method 'GetElementById' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

WPF的WebBrowser是MSHTML Web浏览器控件的包装器。 WPF WebBrowser是一个“对象”,而不是Windows窗体中的强类型HtmlDocument。正如文档所解释的,文档对象需要转换为您期望的COM接口

Document属性实现了几个IHTMLDocumenX接口。getElementById在中定义,这意味着您必须编写:

IHTMLDocument3 doc=MyWebBrowser.Document;
IHTMLElement elt=doc.getElementById("abc");
使用动态变量可以避免强制转换,例如:

dynamic doc=MyWebBrowser.Document;
dynamic elt=doc.getElementById("abc");
...

我不明白你的问题。NET 4仅支持XP SP3,对于其他SP级别,您必须返回到3.5甚至2.0。WebBrowser类在.NET4中仍然可用。请澄清。我读到Windows XP Professional支持.Net 4,不知道他使用的是SP3还是SP2。尽管.Net 4中支持WebBrowser,但没有GetElementById函数。您必须通过Document属性访问GetElementById。。。就像你一直做的那样……对,WPF。不是WinForms.doc.getElementByIdabc;红色下划线有错误:错误1找不到编译动态表达式所需的一种或多种类型。您缺少引用吗?错误是明确的-您缺少一些引用。要么您不是针对.NET 4,要么您在目标框架之间来回移动,.NET 4引用丢失,通常是Microsoft.CSharp和System.Core。实际上,完整的错误应该是编译动态表达式所需的一个或多个类型找不到。是否缺少对Microsoft.CSharp.dll和System.Core.dll的引用?
dynamic doc=MyWebBrowser.Document;
dynamic elt=doc.getElementById("abc");
...