어느날 갑자기 맥북의 크롬이 업데이트 되더니 그전까지 잘 되던 Nuxt프로젝트에서의 e2e 나이트워치 테스트가 실행이 안되었다.
나중에 크롬 드라이버가 업데이트되면 또 비슷한 경우가 있을 것 같아서 해결법을 블로그에 남겨둔다.
...
[Specs/2 F Ans Single Spec] Test Suite
======================================
⚠ Error connecting to localhost on port 9515.
[Specs/2 G Ans Text Spec] Test Suite
====================================
⚠ Error connecting to localhost on port 9515.
[Specs/2 H Ans Date Spec] Test Suite
====================================
⚠ Error connecting to localhost on port 9515.
_________________________________________________
TEST FAILURE: 15 errors during execution; 0 tests failed, 0 passed (7.006s)
✖ specs/1-A_Genre_create.spec
An error occurred while retrieving a new session: "session not created: This version of ChromeDriver only supports Chrome version 91"
Error: An error occurred while retrieving a new session: "session not created: This version of ChromeDriver only supports Chrome version 91"
at HttpRequest.emit (node:events:394:28)
at HttpResponse.emit (node:events:394:28)
at IncomingMessage.emit (node:events:406:35)
at endReadableNT (node:internal/streams/readable:1343:12)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
Error: An error occurred while retrieving a new session: "session not created: This version of ChromeDriver only supports Chrome version 91"
at HttpRequest.emit (node:events:394:28)
at HttpResponse.emit (node:events:394:28)
at IncomingMessage.emit (node:events:406:35)
at endReadableNT (node:internal/streams/readable:1343:12)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
...
요지는 This version of ChromeDriver only supports Chrome version 91
으로, 크롬 드라이버와 크롬 버전이 맞지 않는다는 말이다.
기존 90.xxx
이던것이 93.xxx
으로 변경 되었다.
brew cask install chromedriver@93.0.4577.63
which chromedriver
커맨드를 이용 하면 현재 사용중인 크롬 드라이버 위치가 노출 된다. 여러 곳에 인스톨 한 경우 정확하게 $PATH
에 있는 드라이버를 업데이트 해야 한다. (루비, 파이썬 등 여러 개발환경을 혼용 운용 하는 개발자의 경우 여러군데 설치 되어 있을 가능성이 크다.)
작업이 잘 진행 되지 않는다면 드라이버를 크롬 공식 홈페이지에서 다운 받아 수동으로 원하는 PATH의 bin 폴더에 넣어 줘도 해결 가능한 경우가 있었다. M1 애플 실리콘 맥북을 사용 하는 경우 정확한 바이너리 파일을 골라서 다운로드 하도록 주의 하도록 하자.
brew cask 파일을 수동으로 변경 한다.
위 방법들을 다 해봐도 안되는 경우 '수술' 작업에 들어가자.
아래 커맨드로 brew cask 파일을 연다.
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask
vim chromedriver.rb
여기서 명시 되어 있는 버전을 자신이 원하는 버전으로 변경 하고
brew install --cask chromedriver
명령어를 실행 하면 원하는 버전이 실행 될 것이다. 실행시 sha256 해쉬값 에러가 날텐데 에러 메시지에 출력된 해쉬값을 다시 위 chromedriver.rb 파일의 sha256에 복붙 해주면 해결 된다.
nightwatch.json
파일에서 원하는 크롬 드라이버를 지정 한다.필자의 경우 원래 .node_modules
에 있던 드라이버가 지정 되어 있으면 문제가 되는데 다른 경로의 크롬드라이버를 지정 하니 잘 동작 되었다.
이 외에 해결 안되는 경우가 있다면 추가 포스팅을 해보도록 하겠다.