Windows Automation Testing Framework – AutoIt 使用方法

之前簡單介紹過 AutoIt 的工具使用,接下來我們來看實際上怎麼透過 AutoIt 開啟應用程式並取得元件來操作。

  • 開啟應用程式
    Run("notepad.exe")
    

    若要開啟其他格式的應用程式請參考這裡

  • 等待視窗出現
    1
    如上圖,可透過 title 或是 Class 等待指定的視窗出現

    WinWaitActive("[ClASS:Notepad]")
    

    OR

    WinWaitActive("[TITLE:未命名 - 記事本]")
  • 操作元件
    在 AutoIt 裡要控制元件進行操作都是以 controlXXX 的 function 來執行,如 controlClick,controlSetText…等
    (這裡以 ContorlSetText 為例)
    2
    title:
    在 window 裡,元件都是在某個視窗底下,所以要取得元件要先指定是在哪個視窗裡。以 Notepad 為例,若要在 Notepad 裡輸入文字,使用 ControlSetText 必須指定 title。
    如: “[CLASS:NotePad]"
    詳細參考: Window Titles and Text

    text:
    元件的 text 。
    5
    如:

    ControlSetText("[ClASS:Notepad]", "test", "[CLASS:Edit; INSTANCE:1]", "欲輸入的字串")
    

    這行的意思表示說: 在「Class 為 Notepad」的視窗裡,找到第一個「Edit」且 Text 為      「test」 的元件,然後做 setText 的動作。
    如果為空字串則表示不指定 Text ,任何 Text 都可以(如下)。

    ControlSetText("[ClASS:Notepad]", "", "[CLASS:Edit; INSTANCE:1]", "欲輸入的字串")
    

    controlID:
    透過 controlID 來指定要操作的元件。

    controlID 可以使用下列屬性來指定某個元件(可以透過 windows Info 工具來看)
    1. ID
    2. TEXT
    3. CLASS
    4. CLASSNN
    5. NAME
    6. REGEXPCLASS – Control classname using a regular expression
    7. X \ Y \ W \ H – The position and size of a control.
    8. INSTANCE – The 1-based instance when all given properties match.

    用法如下:
    “[PROPERTY:Value]"
    也可以同時用多種屬性來指定某個元件,要指定多種屬性的用法如下:
    “[PROPERTY1:Value1; PROPERTY2:Value2]"

    4
    (可將 Window Info 工具的 Finder Tool 拉到所要查看的元件上,即會幫你顯示元件的屬性)

  • 程式範例: (開啟 notepad 輸入文字,透過 menu 選項不儲存關閉)
    Run("notepad.exe")
    WinWaitActive("[CLASS:Notepad]")
    ControlSetText("[ClASS:Notepad]", "", "[CLASS:Edit; INSTANCE:1]", "欲輸入的字串")
    Sleep(500)
    Send("!f")  ; 這邊透過 send Alt+F 來點選 Notepad 的 Menu
    Sleep(500)
    Send("{DOWN 6}{ENTER}"); 這邊是表示按了向下鍵 6 次,再按 Enter 鍵
    

    參考文章:
    簡單AutoIt自動安裝
    AutoIt 官方網站

 

廣告

One thought on “Windows Automation Testing Framework – AutoIt 使用方法

發表迴響

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