Udostępnij za pośrednictwem


Ustawianie unikatowej właściwości automatyzacji dla formantów Sklepu Windows przeznaczonych do testowania

Jeśli chcesz uruchomić zakodowanej testy interfejsu użytkownika dla aplikacji opartych na języku XAML magazynu systemu Windows musi mieć właściwość unikatowy automatyzacji, która identyfikuje każdy formant.

Można przypisać unikatowy automatyzacji właściwości zależy od typu formantu XAML w aplikacji.Oto jak przypisać właściwość ta unikatowa automatyzacji w następujących sytuacjach:

  • Statyczne definicja języka XAML formantów

  • Przypisywanie właściwości Unikatowy automatyzacji za pomocą programu Visual Studio lub mieszania dla programu Visual Studio

  • Użyj DataTemplate

  • Używanie szablonu formantu

  • Formantów dynamicznych

Użyj metody, aby przypisać właściwość unikatowy automatyzacji

Statyczne definicja języka XAML

Aby określić właściwości Unikatowy automatyzacji dla formantu, który jest zdefiniowany w pliku XAML, można ustawić AutomationProperties.AutomationId lub AutomationProperties.Name bezpośrednio lub pośrednio, jak pokazano w poniższych przykładach.Ustawienie którakolwiek z tych wartości daje kontrolę właściwość unikatowy automatyzacji, który może służyć do identyfikowania formantu podczas tworzenia kodowane jako nagranie test lub działania interfejsu użytkownika.

Ustaw właściwość niejawnie

Ustaw AutomationProperties.AutomationId na ButtonX przy użyciu właściwość Name w pliku XAML formantu.

<Button Name="ButtonX" Height="31" HorizontalAlignment="Left" Margin="23,26,0,0"  VerticalAlignment="Top" Width="140" Click="ButtonX_Click" />

Ustaw AutomationProperties.Name na ButtonY przy użyciu właściwości zawartości w języku XAML formantu.

<Button Content="ButtonY" Height="31" HorizontalAlignment="Left" Margin="23,76,0,0" VerticalAlignment="Top" Width="140" Click="ButtonY_Click" />

Jawnie ustaw właściwość

Ustaw AutomationProperties.AutomationId na ButtonX jawnie w języku XAML formantu.

<Button AutomationProperties.AutomationId=“ButtonX” Height="31" HorizontalAlignment="Left" Margin="23,26,0,0"  VerticalAlignment="Top" Width="140" Click="ButtonX_Click" />

Ustaw AutomationProperties.Name na ButtonY jawnie w języku XAML formantu.

<Button AutomationProperties.Name="ButtonY" Height="31" HorizontalAlignment="Left" Margin="23,76,0,0" VerticalAlignment="Top" Width="140" Click="ButtonY_Click" />

Przypisywanie właściwości Unikatowy automatyzacji za pomocą programu Visual Studio lub mieszania dla programu Visual Studio

Blend for Visual Studio lub Visual Studio służy do przydzielania unikalnych nazw elementy interaktywne, takie jak przyciski, pola listy, pola kombi i pola tekstowe.Daje to formant unikatową wartość dla AutomationProperties.Name.

Visual Studio: na Narzędzia menu, wskaż Opcje , a następnie wybierz Edytor tekstu, następnie XAML, a na końcu różne.

Wybierz automatycznie nazwy elementów interaktywnych przy tworzeniu , a następnie wybierz OK.

XAML różne opcje

Blend for Visual Studio: skorzystać z jednej z następujących metod w tym od Blend for Visual Studio.

[!UWAGA]

Ta metoda służy tylko dla formantów, które są tworzone statycznie przy użyciu języka XAML.

Aby nadać unikatową nazwę istniejących formantów

Na Narzędzia menu, wybierz polecenie Elementy interaktywne nazwa, jak pokazano poniżej:

Wybierz nazwę interaktywne elementy z menu Narzędzia

Aby automatycznie nadać unikatową nazwę do formantów utworzonych

Na Narzędzia menu, wskaż Opcje, a następnie wybierz polecenie Projekt.Wybierz automatycznie nazwy elementów interaktywnych przy tworzeniu , a następnie wybierz OK, jak pokazano poniżej:

Ustaw projekt elementy interaktywne nazwa

Używanie szablonu danych

Można zdefiniować prosty szablonu z użyciem ItemTemplate powiązać wartości w polu listy zmiennych za pomocą następujących XAML.

<ListBox Name="listBox1" ItemsSource="{Binding Source={StaticResource employees}}">
   <ListBox.ItemTemplate>
      <DataTemplate>
         <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding EmployeeName}" />
            <TextBlock Text="{Binding EmployeeID}" />
         </StackPanel>
      </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>

Za pomocą szablonu i ItemContainerStyle powiązać wartości do zmiennych za pomocą następujących XAML.

      <ListBox Name="listBox1" ItemsSource="{Binding Source={StaticResource employees}}">
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ListBoxItem">
                                <Grid>
                                    <Button Content="{Binding EmployeeName}" AutomationProperties.AutomationId="{Binding EmployeeID}"/>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </ListBox.ItemContainerStyle>         
        </ListBox>

Dla obu tych przykładów należy następnie zastąpić metodę ToString() ItemSource, jak pokazano w poniższym kodzie za pomocą.Ten kod sprawdza, czy wartość AutomationProperties.Name jest ustawiona i jest unikatowa, ponieważ nie można ustawić właściwości Unikatowy automatyzacji dla każdego elementu listy związanych danych przy użyciu wiązania.Ustawienie wartości unikatowe dla Properties.Name automatyzacji jest w tym przypadku wystarczające.

[!UWAGA]

W ten sposób całą zawartość elementu listy również zestaw do ciągu w klasie pracownika poprzez powiązanie.Jak pokazano w przykładzie, formant przycisku wewnątrz każdego elementu listy jest przypisany identyfikator unikatowy automatyzacji, który jest identyfikatora pracownika.

Employee[] employees = new Employee[] 
{
   new Employee("john", "4384"),
   new Employee("margaret", "7556"),
   new Employee("richard", "8688"),
   new Employee("george", "1293")
};

listBox1.ItemsSource = employees;

public override string ToString()
{
    return EmployeeName + EmployeeID; // Unique Identification to be set as the AutomationProperties.Name
}

Używanie szablonu formantu

Tak, aby każde wystąpienie określonego typu uzyskuje właściwość unikatowy automatyzacji, gdy jest zdefiniowana w kodzie, można użyć szablonu formantu.Tak, aby AutomationProperty wiąże się z Unikatowy identyfikator w wystąpienia formantu, należy utworzyć szablon.Następujące XAML pokazuje jeden ze sposobów tworzenia tego powiązania z szablonu formantu.

<Style x:Key="MyButton" TargetType="Button">
<Setter Property="Template">
   <Setter.Value>
<ControlTemplate TargetType="Button">
   <Grid>
      <CheckBox HorizontalAlignment="Left" AutomationProperties.AutomationId="{TemplateBinding Content}"></CheckBox>
      <Button Width="90" HorizontalAlignment="Right" Content="{TemplateBinding Content}" AutomationProperties.AutomationId="{TemplateBinding Content}"></Button>
   </Grid>
</ControlTemplate>
   </Setter.Value>
</Setter>
</Style>

Podczas definiowania dwóch wystąpień przy użyciu tego szablonu formantu przycisku identyfikator automatyzacji jest ustawiony na unikatowy ciąg zawartości dla formantów w szablonie, jak pokazano w poniższej XAML.

<Button Content=”Button1” Style="{StaticResource MyButton}" Width="140"/>
<Button Content=”Button2” Style="{StaticResource MyButton}" Width="140"/>

Formantów dynamicznych

Jeśli masz formanty, które są tworzone dynamicznie z kodu i nie utworzone statycznie lub za pośrednictwem szablonów w plikach języka XAML, należy ustawić właściwości treści lub nazwę dla formantu.Daje to pewność, że każdy z formantów dynamicznych ma właściwość unikatowy automatyzacji.Na przykład jeśli pole wyboru, które muszą być wyświetlane po zaznaczeniu elementu listy, można ustawić te właściwości, jak pokazano poniżej:

private void CreateCheckBox(string txt, StackPanel panel)
   {
      CheckBox cb = new CheckBox();
      cb.Content = txt; // Sets the AutomationProperties.Name
      cb.Height = 50;
      cb.Width = 100;
      cb.Name = "DynamicCheckBoxAid"+ txt; // Sets the AutomationProperties.AutomationId
      panel.Children.Add(cb);
    }

Zobacz też

Koncepcje

Testowanie aplikacji ze Sklepu Windows za pomocą kodowanych testów interfejsu użytkownika