Как установить AutomationProperties.AutomationId для элементов списка ListView или GridView? - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь изучить Appium и использую его в тестировании приложений Windows UWP. Я хочу автоматизировать нажатие на элементы в GridView, но я не знаю, как назначить AutomationProperties.AutomationId для этих динамически генерируемых элементов пользовательского интерфейса. Чтение этой ТАКОЙ записи дало мне подсказку, но у меня не работает. Вот мой GridView XAML:

    <GridView Name="MoviesListView" ItemsSource="{Binding Films}" Grid.Column="1" IsItemClickEnabled="True" ItemClick="MoviesListView_ItemClick">

        <GridView.ItemTemplate>
            <DataTemplate x:DataType="mov:Film">
                <RelativePanel>
                    <Image Name="posterImage" MinWidth="100" MaxWidth="150" Margin="0,0,0,10">
                        <Image.Source>
                            <BitmapImage UriSource="{Binding FullPosterPath}"/>
                        </Image.Source>
                    </Image>
                    <Border 
                            RelativePanel.AlignLeftWithPanel="True"
                            RelativePanel.AlignRightWithPanel="True"
                            RelativePanel.AlignBottomWithPanel="True">
                        <Border.Background>
                            <SolidColorBrush
                                Color="Black"
                                Opacity="0.5"/>
                        </Border.Background>
                        <TextBlock
                            Name="posterText"
                            Margin="0,0,0,10"
                            Width="100"
                            Text="{x:Bind Title}"
                            TextWrapping="Wrap"
                            HorizontalTextAlignment="Center"
                            Foreground="White"
                            Opacity="1"/>
                    </Border>
                </RelativePanel>
            </DataTemplate>
        </GridView.ItemTemplate>
        <GridView.ItemContainerStyle>
            <Style TargetType="GridViewItem">
                <Setter Property="AutomationProperties.AutomationId" Value="{Binding RelativeSource={RelativeSource Self}, Path=Film.Title}"/>
            </Style>
        </GridView.ItemContainerStyle>
    </GridView>

Может кто-нибудь объяснить, как работает Binding path в этом примере? Как я могу назначить уникальный AutomationId, такой как PositionInSet?

...