Xamarin Forms Automation Id для панелей инструментов - PullRequest
0 голосов
/ 21 февраля 2019

Мы создаем автоматизацию тестирования с помощью Appium, и нам нужно добавить уникальные идентификаторы для элементов, с которыми мы взаимодействуем.Мы достигли этого, добавив свойство AutomationId в файл XAML.

Это прекрасно работает, за исключением элементов панели инструментов.Добавленный AutomationId не отображается как content-desc для элементов.

<core:AppBaseContentPage.ToolbarItems>
<ToolbarItem AutomationId="Button1" BindingContext="{Binding BindingContext, Source={x:Reference this}}" Parent="{x:Reference this}"
             Text="{extensions:Translate Button1}"
             Command="{Binding Button1Command}" />

Это ожидаемое поведение или я что-то упустил?

1 Ответ

0 голосов
/ 21 февраля 2019

AutomationId для ToolbarItems не работает (по крайней мере, на Android), но вы можете идентифицировать их, используя свойство text.

<NavigationPage.ToolbarItems>
    <controls:BindableToolbarItem 
                 AutomationId="ToolbarButtonHelp"
                 Text="ToolbarButtonHelp"
                 Icon="help" 
                 Priority="0" 
                 Order="Primary"
                 IsVisible="{Binding ToolbarService.IsHelpVisible, Mode=TwoWay}"
                 Command="{Binding ToolbarService.HelpCommand}"/>

    <controls:BindableToolbarItem                   
                 AutomationId="ToolbarButtonMenu"
                 Text="ToolbarButtonMenu"
                 Icon="quick_menu" 
                 Priority="1" 
                 Order="Primary"
                 IsVisible="{Binding ToolbarService.IsMenuVisible, Mode=TwoWay}"
                 Command="{Binding ToolbarService.MenuCommand}"/>

</NavigationPage.ToolbarItems>

Пример теста пользовательского интерфейса Xamarin

this.app.WaitForNoElement("ToolbarButtonHelp");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...