Windows Automation Testing Framework – UI Automation Pattern 使用介紹

之前有介紹過如何使用 UI Automation,裡頭提到必須透過 Pattern 才能操作元件,所以這篇就來介紹一些比較常用到的 Pattern,以及一些範例,讓大家比較好了解怎麼使用。

我們可以透過之前介紹過的小工具「Inspect」,看元件內的 IsXXXPatternAvailalbe 右邊的 Value 如果是寫「[Not supported]」,則表示此元件沒有這個 Pattern 可以使用;反之,若右邊的 Value 是寫 true 或 false,則表示此元件有此 Pattern 可以使用。

以下我們會簡單介紹幾個自動化測試常用到的 Pattern:點擊按鈕要使用 InvokePattern、設定 EditText 的值時要使用 ValuePattern、要捲動畫面時要使用 ScrollItemPattern 或 ScrollPattern、要得知某個元件的狀態或是切換狀態要使用 TogglePattern(如:checkbox、radiobutton…等)。

以下直接用範例說明如何使用 Pattern:

1 . InvokePattern

// 取得此元件(element) 的 InvokePattern
InvokePattern buttonPattern = (InvokePattern)element.GetCurrentPattern(InvokePattern.Pattern);
// 達到單擊按鈕的效果
buttonPattern.Invoke();

2 . ValuePattern

// 取得此元件(element) 的 ValuePattern
ValuePattern editTextPattern = (ValuePattern)element.GetCurrentPattern(ValuePattern.Pattern);
// 確認此元件的值可以被修改
if (editTextPattern.Current.IsReadOnly == false) {
	// 對 Value Pattern(editTextPattern) 做 SetValue
	editTextPattern.SetValue(value);
	// 印出此元件的值
	Console.Out.WriteLine(editTextPattern.Value);
}

3 . ScrollPattern

// 取得此元件(element) 的 ScrollPattern
ScrollPattern scrollElementPattern = (ScrollPattern)element.GetCurrentPattern(ScrollPattern.Pattern);
// 在此元件內做 scroll 的動作
scrollElementPattern.ScrollVertical(ScrollAmount.SmallIncrement)

4 . ScrollItemPattern

// 取得此元件(element) 的 ScrollItemPattern
ScrollItemPattern scrollElementPattern = (ScrollItemPattern)element.GetCurrentPattern(ScrollItemPattern.Pattern);
// 將此元件 scroll 到看的到的 view 內
scrollElementPattern.ScrollIntoView();

5 . TogglePattern

// 取得此元件(element) 的 TogglePattern
TogglePattern togglePattern = (TogglePattern)checkbox.GetCurrentPattern(TogglePattern.Pattern);
// 確認此元件的狀態是被選取(On) 的
if (togglePattern.Current.ToggleState == ToggleState.On) {
	// 切換此元件到下一個狀態
	togglePattern.Toggle();
}

以上沒有解釋到 Pattern 裡全部的功能,但可以利用下方的參考文章去查詢更詳細的使用方式,希望大家經由這幾篇 UI Automation 的介紹,可以快速進入 Windows 自動化測試的世界喔!

參考文章:
InvokePattern
ValuePattern
ScrollPattern
ScrollItemPattern
TogglePattern

廣告

One thought on “Windows Automation Testing Framework – UI Automation Pattern 使用介紹

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s