"определение когда страница закончила отображаться" - это залог стабильности тестов Селениум. Если в каких-то случаях не сможешь определить когда страница отобразилась (даже ожиданием элементов), тогда придётся использовать фиксированные ожидания, типа "ждать 3 секунды" - в результате тесты сразу станут медленными и хрупкими
некоторые примеры когда Селениум не в состоянии определить статус отображения страницы:
1. загрузка возможно пустой таблицы. Селениуму непонятно то ли таблица закончила отображаться и она правда пустая, то ли над отображением данных работают скрипты, и строки скоро отобразятся
2. допустим есть кнопка и "цветовой индикатор". при нажатии кнопки индикатор меняет цвет на красный. В случае если цвет индикатора изначально красный и мы нажимаем на кнопку - тогда Селениум не понимает отработал ли скрипт кнопки, ведь цвет индикатора не меняется
3. добавление элемента в фильтрованную таблицу, когда новый элемент оказывается "под фильтрами" либо "на другой странице", то есть видимые элементы таблицы не меняются. Вводишь данные, нажимаешь на "добавить" - но Селениум не понимает добавлен ли элемент, так как новый элемент не добавлен в видимые элементы таблицы
Что есть у Селениума? Простой wait, который ожидает загрузку страницы. Но совершенно не гарантирует отображение данных
Далее есть все эти FluentWait, типа "подождать отображения элемента" - это реально хаки, и работают только в тех случаях, когда на странице в результате действия происходят изменения (если изменений нет, то метод не работает)
Раньше были методы основанные на определении когда jquery закончит работу на странице, думаю они могли гарантировать отображение - но теперь и этот метод не подходит, так как уже jquery мало где используется
И что получается, что у Селениума не получается стабильно работать с современными веб-аппликациями? Уже 3я версия вышла - а до сих пор вместо написания тестов люди тратят уйму времени на написание хаков и костылей для кастомного ожидания плюс фиксированные ожидания? В результате тесты получаются медленные и хрупкие, и опять куча времени уходит на дебаг. Почему в Селениуме до сих пор нет нормальной встроенной команды "подождать отображение страницы" - и тогда эту команду просто можно использовать после каждого действия и быть уверенным что страница полностью загружена?