2012-02-14 93 views
1

有一個具有輸入文本框的網頁。用C控制Internet Explorer#

我想啓動頁面

Process.Start("http://nameofdomain.com") 

問題是我怎麼能進行數據輸入字段和提交表單?

UPDATE -

我不需要向用戶顯示/呈現任何頁面。

其目的是允許用戶以最小的努力更改他們的密碼。我們目前的設置是

  1. 用戶導航到網站上的內聯網(HTTP:// intranetsite /密碼)
  2. 要求用戶輸入他們的Windows用戶名(firstName.lastName)
  3. 詢問用戶輸入他們當前的密碼(或者回答安全問題,如果存在的話)
  4. 用戶被要求點擊鏈接(在更改密碼或更改安全問題之間進行選擇)
  5. 最終頁面是一個確認頁面,密碼已成功更改。他們在我們的網絡上有幾個帳戶。每個帳戶具有不同的密碼規則 一個系統可能要求密碼不能再次爲最後90個密碼重複。另一個系統要求密碼正好是8個字符。我的應用程序檢查密碼規則是否正確。我無法檢查密碼歷史記錄。因此最後一頁將是必要的,否則我必須解析HTML並指出錯誤。
+0

哪些字段??? – 2012-02-14 15:29:53

+0

如果你正在窗口應用程序中工作,我想你可以通過在應用程序UI中嵌入WebBrowser控件並將其導航到所需的url來獲得更好的控制。或者你找到一個非常通用的解決方案,考慮到對Process.Start(「http://nameofdomain.com」)的調用也可以打開FireFox或Chrome ... – 2012-02-14 15:30:16

+2

你真的必須顯示該頁面,還是可以如果發送填充表單的HTTP請求時未實際呈現頁面? – ramsesoriginal 2012-02-14 15:30:20

回答

1

最好的方法(到目前爲止)是WatiN @http://watin.org/。我試過Selenium,永遠無法順利運行(也許它已經變得更好了)。 WatiN的文檔面向自動化測試,但您可以在沒有測試代碼/庫的情況下進行測試,並且它支持FirefoxChrome。例如:

using WatiN.Core; 
using WatiN.Core.Interfaces; 
using WatiN.Core.Logging; 
using WatiN.Core.DialogHandlers; 

...

public void SearchForWatiNOnGoogle() 
{ 
    using (var browser = new IE("http://www.google.com")) 
    { 
    browser.TextField(Find.ByName("q")).TypeText("WatiN"); 
    browser.Button(Find.ByName("btnG")).Click(); 
    } 
} 
+0

我是否需要導入任何類以使用WaitN? – 2012-02-14 16:49:40

+0

不是。你所需要的只是添加一個對'WatiN.Core.dll'的引用到你的項目中,然後添加我剛添加到答案中的'using'指令。 – Diego 2012-02-14 20:39:15

2

您可以看看網絡瀏覽器自動化工具,如Selenium,他們有一個C#驅動程序來與瀏覽器進行交互和自動化。