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.
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:
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:
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