Когда Protractor связывается с Angular, он использует Angular API тестируемости, API возвращает переменную is_stable. Если эта переменная имеет значение true, это означает, что ваш Angular веб-сайт стабилен. Это означает, что все обещания на вашей странице были выполнены, и нет активных процессов, которые страница ожидает до конца sh.
ПРИМЕЧАНИЕ. Флаг is_stable выдаст значение false, если на вашей странице все еще есть элементы, требующие разрешения. Эта проблема обычно возникает, если ваш веб-сайт имеет какие-либо сторонние интеграции, которые продолжают работать в фоновом режиме, или если что-то на мобильной стороне не загружается на веб-странице. Если это так, вам необходимо проверить, есть ли какие-либо процессы, ожидающие на вашей веб-странице. Если есть какие-либо процессы, вам придется переместить их за пределы Angular. Таким образом Angular разрешит все обещания и сообщит транспортиру, что он готов к приему команд.
Другой способ удалить явные ожидания из вашего кода - использовать asyn c await. Asyn c await прост в использовании и будет явно ждать любого разрешения обещания перед тем, как продолжить. В настоящее время менеджер обещаний селена берет на себя все обещания, если вы используете старую версию транспортира, в противном случае менеджер обещаний отключен (устарел), поэтому вам придется вручную позаботиться обо всех обещаниях.