Атата - Есть ли функциональность, эквивалентная Wait.Until?

В сценариях, с которыми я работаю, необходимо подождать, пока ожидаемые условия, такие как значение, присутствуют, значение имеет ожидаемый текст или состояние, или пока не вступят в силу более сложные правила, например:

Wait.Until(x => x.UserName.Value.Get() != string.Empty)

Учитывая селен wait.until метод, есть ли эквивалентная функциональность в платформе Atata?

Я видел, что есть много атрибутов для ожидания, как Until, WaitFor, WaitForElement, но это для простых сценариев. Мне нужен подобный функционал для более сложных правил. Как этого можно достичь с помощью Atata?

1 ответ

Решение

Вы можете использовать компоненты Should.* методы расширения для этого.

page.SomeSpan.Should.Equal("smth"); // Checks for text in some <span> element.

По умолчанию повторное выполнение может занять до 5 секунд, пока условие не будет выполнено, даже если элемент управления не существовал в начале проверки. Исключение выдается только после истечения времени и условия не выполняются.

page.SomeSpan.Should.Within(30).StartWith("smth"); // Wait for condition within 30 seconds.
page.SomeSpan.Should.AtOnce.Contain("smth"); // Without retries, quickly checks and throws if condition doesn't match.
page.SomeSpan.Should.Not.BeNullOrEmpty(); // Wait for any value in <span>.

Вы также можете использовать Should методы расширения для контрольных списков и свойств данных:

page.SomeTable.Rows.Should.Not.BeEmpty();
page.SomeTable.Rows.Count.Should.BeGreaterOrEqual(1);

И так далее... Вы можете проверить Atata.IDataVerificationProviderExtensions а также Atata.IUIComponentVerificationProviderExtensions классы для других методов. А для отрицательных проверок просто добавьте "Не" после "Должен": Should.Not.*, Существует также Should.Satisfy() метод для пользовательских условий.

Другие вопросы по тегам