Получение видимости индикатора выполнения в приложении WPF с помощью FlaUI Automation

Я автоматизирую приложение WPF с помощью FlaUI. У меня есть индикатор выполнения Inderminate. Как только индикатор выполнения свернут, пользовательский интерфейс загружается. Я хочу реализоватьRetry механизм на ProgressBar Visibility но я не могу найти правильный property через FlaUI

private ProgressBar LoadingStatus => _uiAutomation.FindElement("ShowProgress", Automation.FindBy.Id).AsProgressBar();

<ProgressBar AutomationProperties.AutomationId="ShowProgress"
                Grid.Row="1"
                Height="4"
                Margin="0"
                BorderThickness="0"
                IsIndeterminate="True"
                IsTabStop="False"
                ToolTip="Contacting Server, Please Wait..."
                Visibility="{Binding IsServerActive, Converter={StaticResource MwBoolToVisibilityConverterReverse}}" />

Я хочу реализовать Retry.While((LoadingStaus_Is_Collapsed)=> )};но похоже, что у меня нет доступа к visibilityсвойство. Как я могу это сделать?

1 ответ

Решение

Здесь работает свойство IsOffScreen. Инфраструктура UIA предоставляет это свойство, поскольку видимость - этоWPF собственность, а не UIA.IsOffScreen возвращает True, если элемент в данный момент не отображается на экране, иначе возвращает False. Вот как я это использовал

public bool LoadingStatusVisibiltity()
        {
            _logger.Info("Retrieving data from the server.Please wait!");
            if (LoadingStatus.IsOffscreen)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
Другие вопросы по тегам