Не удается проверить сетки / StackPanels / пользовательские элементы управления в WinAppDriver и найти их по AccessibilityId с Appium - PullRequest
0 голосов
/ 09 апреля 2020

Мое приложение UWP показывает очень ограниченную часть элементов при проверке (ни с инспектором.exe, ни с инспектором клиента Appium). Как следствие, попытка найти их с помощью результатов Appium FindElementByAccessibilityId с NoSuchElementException.

Пример:

<Page [namespaces]>

    <Page.Resources>
       [Resources]
    </Page.Resources>

    <Grid AutomationProperties.AutomationId="CreationModeRoot">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <Grid >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>

            <Button x:Name="BackButton" />

            <StackPanel x:Name="MainToolsPanel"
                        Orientation="Horizontal">
                <controls:ToolBarButton x:Name="DrawingToolBallPen" />
                <controls:ColorSelectorDropDown x:Name="ColorPaletteDropDown">
                    <PathIcon Width="44"
                              Height="44"
                              Data="{StaticResource ColorToolIcon}">
                    </PathIcon>
                </controls:ColorSelectorDropDown>
            </StackPanel>
        </Grid>

        <ScrollViewer x:Name="Scroll">
            <inkCanvas:InkVectorCanvas x:Name="InkVectorCanvas" />
        </ScrollViewer>
    </Grid>
</Page>

Из приведенного выше кода единственными успешно проверенными элементами являются BackButton, DrawingToolBallPen & Scroll. Ни CreationMode Root, ни MainToolsPanel, ни InkVectorCanvas не обнаруживаются.

Скажите, пожалуйста, как правильно построить мой взгляд.

1 Ответ

0 голосов
/ 09 апреля 2020

Я нашел решение:

AutomationId и AutomationName автоматически сопоставляются со свойствами x: Name и Content. Если свойство содержимого не является строкой, в большинстве случаев инструменты проверки не обнаруживают их. Перезапись AutomationName с помощью AutomationProperties.Name PropertyPath решает эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...