|
目前市面上有很多Web UI自動(dòng)化測(cè)試框架,比如WatiN, Selinimu,WebDriver,還有VS2010中的Coded UI等等. 這些框架都可以操作Web中的控件,模擬用戶輸入,點(diǎn)擊等操作,實(shí)現(xiàn)Web自動(dòng)化測(cè)試。其實(shí)這些工具的原理都一樣,都是通過(guò)調(diào)用IE COM接口和HTML DOM 對(duì)IE瀏覽器以及WEB測(cè)試對(duì)象的操作。 本文介紹脫離這些自動(dòng)化測(cè)試框架。 直接使用.NET提供的shdocvm.dll庫(kù)來(lái)操作IE瀏覽器,使用mshtml.dll庫(kù)來(lái)操作IE中的 HTML對(duì)象。 閱讀目錄 優(yōu)點(diǎn) 添加引用 操作IE 使用IE Develop Toolbar 查看HTML DOM 操作IE中的HTML元素 源代碼下載 優(yōu)點(diǎn) 通過(guò)直接操作IE COM來(lái)實(shí)現(xiàn)Web自動(dòng)化,能讓你在幾分鐘之內(nèi)快速建立一個(gè)輕量型的自動(dòng)化測(cè)試程序。 大大的提高了測(cè)試效率。 也有助于你理解WatiN這些自動(dòng)化測(cè)試框架的運(yùn)行原理. 添加引用 shdocvm.dll和mshtml.dll這兩個(gè)庫(kù)的COM組件名字和他們的dll名字不一樣。所以比較難找。 shdocvm.dll 的COM 組件名字叫"Microsoft Internet Controls". 添加引用如下Add References->Com Tab-> Microsoft Internet Controls
mshtml.dll的COM組件名字叫"Microsoft.mshtml", 添加引用如下Add References-> .NET Tab->Microsoft.mshtml
添加完引用后,就可以引用命名空間了 usingmshtml; usingSHDocVw; 操作IE 通過(guò)shdocvm.dll中的InternetExplorer對(duì)象的屬性和方法, 比如Height,Width。我們能夠操作IE,以便模擬一些用戶的操作,比如調(diào)整瀏覽器的大小,刷新頁(yè)面等。
使用IE develop toolbar 查看HTML DOM 下節(jié)中我們要操作HTML中的元素, 我們先需要知道這些控件的id, 使用IE Develop Toolbar或者firebug可以方便查看控件的id. 按F12啟動(dòng)IE Develop Toolbar, 或者點(diǎn)擊IE工具欄中的Tools->Develop Tools
從圖中可以看到博客園中的搜索textbox的id是"q" 操作IE中的HTML元素 模擬一個(gè)在博客園首頁(yè)進(jìn)行搜索的場(chǎng)景。 模擬在文本框中輸入數(shù)據(jù), 然后點(diǎn)擊"找找看按鈕"。 我們通過(guò)mshtml.dll庫(kù)里的getElementById()方法獲得你要操作的HTML元素的引用。 然后你可以操作這個(gè)對(duì)象,比如輸入值和點(diǎn)擊它 staticvoidMain(string[] args) { InternetExplorer IE = newInternetExplorer(); IE.Visible = true; objectnil = newobject(); stringCnblogUrl = "http://www.cnblogs.com"; //打開(kāi)IE并且打開(kāi)博客園主頁(yè) IE.Navigate(CnblogUrl, refnil, refnil, refnil, refnil); Thread.Sleep(3000); //獲取DOM對(duì)象 HTMLDocument doc = (HTMLDocument)IE.Document; //博客園主頁(yè)上的搜索Textbox的id是 "q" HTMLInputElement SearchTextBox = (HTMLInputElement)doc.getElementById("q"); SearchTextBox.value = "小坦克"; //博客園主頁(yè)上的"找找看"按鈕的id是"btnBloggerSearch" HTMLInputElement SearchButton = (HTMLInputElement)doc.getElementById("btnBloggerSearch"); SearchButton.click(); } 運(yùn)行效果如下:
源代碼下載 點(diǎn)擊這里,請(qǐng)用VS2008以上打開(kāi) 參考書(shū)籍:<.NET Test Automation Recipes> |
|
|
來(lái)自: 看見(jiàn)就非常 > 《tip》