我開發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