惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
I
InfoQ
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog
博客园_首页
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
C
Check Point Blog
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Engineering at Meta
Engineering at Meta
B
Blog
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
F
Fortinet All Blogs
月光博客
月光博客
GbyAI
GbyAI

博客园 - 黃偉榮

Web Project的檔案共用小技巧 IoC的中繼器:CommonServiceLocator UTF8Encoding與BOM Temporary Post Used For Theme Detection (d4b0aefa-c88e-4957-bba7-b367d1bfa042 - 3bfe001a-32de-4114-a6b4-4005b770f6d7) Visual Studio 2010 Feature Packs 2之Silverlight自動化測試 Moles - Isolation framework for .NET(假.Net)介紹 [小技巧]Entity Framework強型別Include C#仿Oracle Decode,將ValueType對應成String - 黃偉榮 - 博客园 Visual Studio 單元測試的3種Initialize與Cleanup jQuery套件-檢查頁面的欄位是否有變更 用EventLogReader查詢特殊EventLog jQuery自製Plugin-Bind事件函式時檢查有沒有Bind過 ASP.NET MVC TempData使用心得 Visual Stuiod 自訂檔案比較合并工具 [小技巧]自動化測試時NLog的訊息輸出到測試結果中 小技巧:專案切換32與64位元組件 Linq小技巧:日期處理 Unit Test小技巧 : DateTime的Stub 解決TFS Build Asp.Net Mvc開啟MvcBuildViews後無法載入組件問題
寫CodedUI時如何尋找控制項的小技巧
黃偉榮 · 2010-11-26 · via 博客园 - 黃偉榮

在用CodedUI寫自動化測試時,我不喜歡用工具產生的代碼(相關資訊可參考手工製Coded UI Test(Visual Studio 2010新的UI自動化測試)),寫久了有一些經驗,例如找到控制項的一些的小技巧。

工具

尋找控制項我也是用Visual Studio 2010內建的CodedUITestBuilder.exe,不過一般的情況下CodedUITestBuilder.exe必需搭配測試專案的UIMap.uitest使用,有點麻煩,不過還好它有提供獨立執行的方法。

CodedUITestBuilder.exe的執行畫面

圖1 CodedUITestBuilder.exe的執行畫面

在CMD中下

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\CodedUITestBuilder.exe" /standAlone

多一個參數/standAlone就可以單獨執行,也加入Visual Studio的External Tools中,方便日常的呼叫。

External Tools視窗

圖二 External Tools視窗

尋找控制項

使用CodedUITestBuilder的UIMap功能,使用的方式有二種。

  1. 按下 Windows key + U,會自動選取到游標所在的控制項,適用在不方便滑鼠拖曳的情況下
  2. 滑鼠拖曳下圖紅色框中的Icon,到控制項上方

拖曳用的Icon

圖三 拖曳用的Icon

選到控制項的晝面

圖四 選到控制項的晝面

選擇到控制項後,會出現控制項的說明視窗,裡面有控制項的各個屬性值與階層,可以用來做為寫CodedUI的搜尋條件。

控制項的說明視窗

圖五 控制項的說明視窗

像Name=q,Code就可以這樣寫

//假設已經開啟了IE且網址在www.google.com上
BrowserWindow window = BrowserWindow.Locate("Google");            

HtmlEdit input = new HtmlEdit(window);
input.SearchProperties[HtmlEdit.PropertyNames.Name] = "q";
input.Text = "黃偉榮";

控制項視窗的屬性值,都可以做為搜尋條件

圖六 控制項視窗的屬性值,都可以做為搜尋條件

階層問題

之前有遇到問題,條件都下對,就是找不到控制項,後來發現可能是階層問題,可以試著一層一層的去找到控制項。

控制項都可以將父視窗傳進去,然後可以只搜尋子控制項

圖七 控制項都可以將父視窗傳進去,然後可以只搜尋子控制項

NOTE:

如果嘗試幾次都失敗,可以叫出產生器,去看產生的CodedUI是如何去找到控制項。