我开发C#的桌面程序做一些自动发布按在WebBrowser控件提交按钮
- 我在C#中WebBrowser控件打开网页(与形式)
- 一旦打开网页,我正在填写表单字段的数据(使用C#代码)。所以没有人工交互
我的问题是:我如何自动发送数据到服务器(换句话说,我怎么按下提交按钮使用C#代码)?
我开发C#的桌面程序做一些自动发布按在WebBrowser控件提交按钮
我的问题是:我如何自动发送数据到服务器(换句话说,我怎么按下提交按钮使用C#代码)?
看看WatiN。但我个人会使用WebClient
或HttpWebRequest
从/到服务器获取/张贴数据
感谢您的快速回复。我正在寻找一些与C#web浏览器控制的工作示例 – 2012-02-13 13:16:04
基本上使用相同的代码来定位和填充字段,您可以遍历DOM以查找提交按钮并通过点击发送调用。
theElementCollection = WebBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement curElement in theElementCollection) {
if (curElement.GetAttribute("id").Equals("login_button")) {
curElement.InvokeMember("click");
我试过这种编码。但它对我来说效果并不好 – 2012-02-13 13:17:39
只是好奇 - 你是否尝试了一下,以确保它获得了元素?我已经写了一些这些程序,并且必须实施一些解决方法。 – kpcrash 2012-02-13 14:00:18
是的,我试过了。但它没有提交表格 – 2012-02-26 10:22:43
如果你想提交你检查这一种形式,
// get the document
mshtml.IHTMLDocument2 doc = ((mshtml.HTMLDocumentClass)webBrowser1.Document);
// set a variable
((mshtml.IHTMLElement)doc.all.item("q")).setAttribute("value", "my input...");
// click a button
((mshtml.HTMLInputElement)doc.all.item("btnI")).click();
命名空间mshtml
位于Microsoft.mshtml
大会。
只需添加对Microsoft.mshtml
的引用即可。
如果这是用于Web UI测试,那么你应该指定,否则我可以看到你被轰炸“你应该使用HttpWebRequest”。 – James 2012-02-13 13:09:30
是的,这是为我的PHP应用程序的UI测试工作 – 2012-02-13 13:23:12