Windows Automation Testing Framework – UI Automation 簡介

UI Automation 是微軟自己官方提供的自動化測試工具,我們拿 Visual Studio 來當開發工具、C# 來當開發語言,以下會簡單介紹如何使用 UI Automation 來操作元件。

要操作 Windows 的元件,其實很簡單,只要先利用元件的屬性條件(Condition)找到要操作的 AutomationElement 或是利用之前提供的利用相對位置去找 AutomationElement(可參考 使用 TreeWalker),之後再利用元件本身支援的 Pattern 來使元件做相對應的動作。

1 . 如果要透過元件屬性來找元件時,就要先宣告一個 Condition:

/* 傳 Property(NameProperty) 與 Property 的值(“Windows Media Player”) 
給 PropertyCondition,產生一個 Condition 物件(elementCondition)*/
Condition elementCondition = 
    new PropertyCondition(
        AutomationElement.NameProperty, "Windows Media Player");

2 . 利用 Condition 找 AutomationElement:

/* 從某個元件(currentElement) 利用條件(elementCondition) 找
在指定的範圍內(Children) 的第一個(FindFirst) 符合的元件(element)*/
AutomationElement element = 
    currentElement.FindFirst(
        TreeScope.Children, elementCondition);

3 . 透過元件本身有支援的 Pattern 來對元件進行操作,假設此 AutomationElement 是一個 EditText,要對元件做輸入的動作:

// 取得此元件(element) 的 Pattern(ValuePattern.Pattern)
ValuePattern editTextPattern = 
    (ValuePattern)element.GetCurrentPattern(
        ValuePattern.Pattern);
// 對此 Pattern(editTextPattern) 做這個 Pattern 可以做的事情(SetValue)
editTextPattern.SetValue(value);

Property 的部份不只有 NameProperty 可以使用,還有像是:ClassNameProperty、AutomationIdProperty、IsOffscreenProperty 等等可以使用;

Pattern 的部份也不只有 ValuePattern 可以用,還有像:InvokePattern、ScrollItemPattern 等等。以上這些 Property 及 Pattern 如何得知及介紹,會在之後的文章詳細說明:)。

 

參考文章:

Microsoft UI Automation 官網介紹

廣告

2 thoughts on “Windows Automation Testing Framework – UI Automation 簡介

發表迴響

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