
Проблема
- Тесты сильно замараны Wait.For
- Можно накосячить заиспользовав элемент не дожидаясь его (плохая инкапсуляция)
- Wait.For внутри Wait.For
- Wait.For(condition); Assert.That(condition);
- Wait.For(conditionA, 10000); Wait.For(conditionA, 30000);
- Перед использованием элемента проверяли его на Exist
- Код ниже x5 VS browser.GoToClientPage(payer);
// TODO: browser.GoToClientPage(payer)
Wait.For(() => browser.GoToPage<ClientPageBase>(ClientPageBase.Uri(payer.Id)).Title == payer.Name, 80000);
// TODO: разобраться, зачем Wait (можно было бы использовать browser.GoToClientPage(payer.Id, PayerName);)
var clientPage = browser.GoToPage<ClientPageBase>(ClientPageBase.Uri(payer.Id));
// Assert.AreEqual(PayerName, clientPage.Title, "Страница плательщика не загрузилась");

Решение
- Wait.For(() => element.Visible, 8000); -> element.WaitVisible();
- Ловим ошибки selenium и обрабатываем их -> больше стабильности тестов
- Элемент сам пытается себя перевытащить если он не Exist -> в коде меньше мусора с проверками на Exist перед использованием + меньше шанс накосячить при написании теста

По ходу наткнулись
- selenium коряво чистит input
- Состояние Enable и Disable у кнопки определялось по разному, и из-за этого в некоторых тестах были проблемы (в некоторых тестах по факту кликали по задизейбленой кнопке)
- Была сломан mail service у функ тестов. Несколько тестов падали с непонятной причиной из-за этого.
Сейчас mail service стартует, а письма складываются в спец папочку артефактов (рядом с папкой screenshots) - Не умели скролить и ряд тестов из-за этого могли падать. Починили падающие из-за этого тесты добавив метод ScrollIntoView у элементов.


Вопросы?

Автотесты Wait-For
By deuterium
Автотесты Wait-For
- 489