Атата - Есть ли функциональность, эквивалентная 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()
метод для пользовательских условий.