Минимизированная ошибка React # 310; используйте неминифицированную среду разработки для полных ошибок и дополнительных полезных предупреждений, используя Chrome через Selenium в React - PullRequest
0 голосов
/ 28 марта 2020

Я новичок в автоматизированном тестировании. Я использую Selenium / Java / Cucumber / Eclipse для создания инфраструктуры тестирования и написания / выполнения сценариев автоматического тестирования.

Предыдущие сценарии, которые выполнялись правильно, теперь не работают на определенной c веб-странице.

Во время выполнения теста конкретная страница c загружается, а затем гаснет.

Просмотр вывода консоли Chrome Я вижу следующую ошибку:

Error: Minified React error #310; visit https://reactjs.org/docs/error-decoder.html?invariant=310 for the full message or use the non-minified dev environment for full errors and additional helpful warnings

Эта проблема также возникает на том же экране, когда тест выполняется на Firefox.

. Я не вижу этой ошибки, если вручную нажимаю на экран, который не выполняется в автоматическом тесте.

Кто-нибудь видел эту проблему раньше при запуске автоматических тестов селена?

Тесты выполняются на работающем веб-сайте, поэтому я не могу изменить код приложения. Я использую этот веб-сайт только для отработки сценариев автоматизации тестирования.

Можно ли как-то избежать или решить эту проблему с помощью команд селена?

1 Ответ

0 голосов
/ 29 марта 2020

Это сообщение об ошибке ...

"Error: Minified React error #310; visit https://reactjs.org/docs/error-decoder.html?invariant=310 for the full message or use the non-minified dev environment for full errors and additional helpful warnings"

... подразумевает, что вы используете минимизированную производственную сборку React , которая позволяет не отправлять полные сообщения об ошибках, чтобы уменьшить количество байтов, отправленных по сети.


Анализ

Согласно документации в Декодер ошибок настоятельно рекомендуется использовать локальную сборку разработки при отладке приложения. так как он отслеживает дополнительную информацию об отладке и предоставляет полезные предупреждения о потенциальных проблемах в ваших приложениях, но если вы столкнетесь с исключением при использовании производственной сборки, на этой странице будет повторно собран исходный текст ошибки.

Однако полный текст Текст ошибки, с которой вы только что столкнулись:

Rendered more hooks than during the previous render.

Решение

Крючки - это JavaScript функции. React требует, чтобы хуки вызывались в том же порядке с каждым рендером. При их использовании необходимо следовать двум правилам:

  • Только Call Hooks на верхнем уровне : Не вызывайте Hooks внутри циклов, условий или вложенных функции. Вместо этого всегда используйте Hooks на верхнем уровне вашей функции React. Следуя этому правилу, вы гарантируете, что хуки вызываются в одном и том же порядке каждый раз при рендеринге компонента. Это то, что позволяет React правильно сохранять состояние перехватчиков между несколькими вызовами useState и useEffect.

  • Только перехватывать вызовы из функций React : не вызывать перехватчики из обычных JavaScript функций. Вместо этого вы можете:

    • Call Hooks из компонентов функции React.
    • Call Hooks из пользовательских Hooks (мы узнаем о них на следующей странице).

Следуя этому правилу, вы гарантируете, что все логические состояния c в компоненте четко видны из его исходного кода.


Ссылки

Вы можете найти пару релевантных обсуждений в:


tl; dr

Как исправить React Error: обработано меньше хуков, чем ожидалось

...