Когда мы выполняем тесты на селен, мы хотели выяснить ошибки javascript еще до того, как они попадут на наши промежуточные / производственные серверы. В результате этого изменения мы обнаружили 5 ошибок JavaScript. Кроме того, это придаст нам огромную уверенность при обновлении любой библиотеки javascript.

С chromedriver есть способ по умолчанию вызывать ошибки.

Ошибки javascript возникают как СЕРЬЕЗНЫЕ ошибки уровня. Итак, мы фильтруем их и вызываем исключение, если они есть. Конечный результат при ошибке javascript:

К сожалению, для Firefox geckodriver таких способов нет, потому что интерфейс протоколирования еще не соответствует спецификации w3c. И мы использовали geckodriver по разным причинам. Итак, мы придумали следующий трюк.

Тесты Selenium выдадут ошибку при обнаружении неожиданных предупреждений javascript. Итак, мы можем предупредить, когда такие ошибки javascript присутствуют, следующим образом.

ПРИМЕЧАНИЕ. Добавьте код в файл javascript, который загружается на всех страницах.

Но проблема с этим подходом заключается в том, что он также начнет показывать такие предупреждения в ваших промежуточных / производственных средах, а мы этого не хотим. Чтобы обойти эту проблему, мы можем установить глобальную переменную javascript при выполнении тестов на селен и получить доступ к этой переменной здесь, чтобы проверить среду. Мы используем Ruby on Rails как нашу внутреннюю структуру, и мы устанавливаем эту переменную в наших файлах макета в зависимости от среды.

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

ПРИМЕЧАНИЕ. Убедитесь, что приведенный выше код вызывается до вызова следующего javascript.

Конечный результат при ошибке javascript: