UI-Automation Thread-Save Funktionen

Da der UITest in einem Nebenthread ausgeführt wird, müssen die Steuerelemente-Aktionen UI-Thread-Save ausgeführt werden. Dafür wurde eine Reihe Standartfunktionen implementiert. Zu jeder Funktion gibt es 2 Implementationen. Eine die das beim Start der UITestEngine übergebene Frame durchsucht (Element der obersten Ebene) und eine der ein zu durchsuchendes Element übergeben wird. Diese kann genutzt werden um das durchsuchen aufwendiger Oberflächen zu vereinfachen indem statt bei dem obersten Frame bei einem untergeordneten übergebenen Panel begonnen wird.
Ansonsten unterscheiden sich die Funktionen nicht von dennen der Extension-Funktionen.
Button
Button_Click(String pButtonName)
Button_Click(String pButtonName, DependencyObject pParent)

ToggleButton (CheckBox, RadioButton, ToggleControlButton, ToggleSwitchButton)
ToggleButton_Toggle(String pToggleButtonName)
ToggleButton_Toggle(String pToggleButtonName, DependencyObject pParent)

Slider
Slider_Set(String pSliderName, double pNewValue)
Slider_Set(String pSliderName, DependencyObject pParent, double pNewValue)
Slider_Move(String pSliderName, SliderDirections pDirection, SliderChangeValues pChangeValue)
Slider_Move(String pSliderName, DependencyObject pParent, SliderDirections pDirection, SliderChangeValues pChangeValue)

TextBox / PasswordBox
TextBox_InputText(String pTextBoxName, String pInputText)
TextBox_InputText(String pTextBoxName, DependencyObject pParent, String pInputText)
TextBox_TypeText(String pTextBoxName, String pInputText, int pDelayBetweenTypeMS)
TextBox_TypeText(String pTextBoxName, DependencyObject pParent, String pInputText, int pDelayBetweenTypeMS)
PasswordBox_InputPassword(String pPasswordBoxName, String pInputText)
PasswordBox_InputPassword(String pPasswordBoxName, DependencyObject pParent, String pInputText)

ScrollViewer
ScrollViewer_Scroll(String pScrollViewerName, System.Windows.Automation.ScrollAmount pHorizontal, System.Windows.Automation.ScrollAmount pVertical)
ScrollViewer_Scroll(String pScrollViewerName, DependencyObject pParent, System.Windows.Automation.ScrollAmount pHorizontal, System.Windows.Automation.ScrollAmount pVertical)

ListBox
ListBox_Scroll(String pListBoxName, System.Windows.Automation.ScrollAmount pHorizontal, System.Windows.Automation.ScrollAmount pVertical)
ListBox_Scroll(String pListBoxName, DependencyObject pParent, System.Windows.Automation.ScrollAmount pHorizontal, System.Windows.Automation.ScrollAmount pVertical)
ListBox_ScrollToItem(String pListBoxName, int pScrollToItemIndex)
ListBox_ScrollToItem(String pListBoxName, DependencyObject pParent, int pScrollToItemIndex)
ListBox_SelectItem(String pListBoxName, int pSelectedItemIndex)
ListBox_SelectItem(String pListBoxName, DependencyObject pParent, int pSelectedItemIndex)

ComboBox
ComboBox_SelectItem(String pComboBoxName, int pSelectedItemIndex)
ComboBox_SelectItem(String pComboBoxName, DependencyObject pParent, int pSelectedItemIndex)

Sonstige
void Control_SetFocus(String pControlName)
void Control_SetFocus(String pControlName, DependencyObject pParent)

ApplicationBar steuern
Leider gibt es bisher keine Automation-Elemente für die ApllicationBar. Wenn Sie nun also ein Click auf ein IconButton bzw. MenuItem simulieren wollen, müssen Sie diesen Umweg nehmen:
#if UITEST
        public
#else
        private 
#endif
        void MenuItem_Click(object sender, EventArgs e)
        {
            //Click Code ...
        }
Führen Sie eine Präprozessor-Variable ein z.B. UITEST, sie können aber auch die vorhandene DEBUG Variable nehmen. Für den UI-Test und damit dieser zugriff auf die Event-Funktion hat muss diese public sein.
UITestEngine.CurrentInstance.Control_RaiseMethod("PageName", "MenuItem_Click", null, null);
Dann führen Sie mit der Funktion "Control_RaiseMethod" die MenuItem_Click Funktion der entsprechenden Page aus.



This WikiPage was created with Codeplex WikiEditor

Last edited Jun 24, 2010 at 8:40 AM by SoftHai, version 3

Comments

No comments yet.