- Linux 환경에서 Selenium 실행하기
정리
- Selenium을 리눅스 환경에 작동시키려다 너무 많은 에러를 마주쳤다.
- 순서대로 마주친 에러를 정리하려 한다.
해결방법
chromedriver.exe 파일 권한 문제.
- Message : selenium webdriver chrome PermissionError: [Errno 13] Permission denied
- Problem : selenium webdriver에서 chromedriver.exe파일에 접근하려 하니 permission 문제가 발생했다.
- Solution : chromedriver.exe 파일에 777 권한을 주니 접근이 되었다.
chromedriver에 접근해도 실행이 안되는 문제 발생.
- Solution : 기존에 window chromedriver를 사용해서 발생한 문제였다. linux 64bit 껄로 다운받아 실행한다.
- URL : https://sites.google.com/a/chromium.org/chromedriver/downloads
- Solution : 기존에 window chromedriver를 사용해서 발생한 문제였다. linux 64bit 껄로 다운받아 실행한다.
chromedriver를 변환해도 실행이 안되는 문제 발생.
Message : OSError: [Errno 8] Exec format error
Solution : Headless 코드를 다른 것으로 변환한다.
기존 코드
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1920x1080')
options.add_argument("disable-gpu")
변환 코드
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument("--disable-dev-shm-usage")
linux에 chrome이 없어서 설치가 안된다.
- Solution : Chrome을 설치한다.
$ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
$ sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
$ sudo apt-get update
$ sudo apt-get install google-chrome-stable
- 참고 사이트 : https://snowdeer.github.io/linux/2018/02/02/ubuntu-16p04-install-chrome/
- Solution : Chrome을 설치한다.
Chrome 버전과 driver 버전이 일치하지 않아서 문제가 생긴다.
- Solution : Chrome 버전을 확인한 후 그에 맞게 chromedrvier를 다시 설치한다.
Chrome의 버전이 81버전이라 그에 맞는 chromedrvier를 찾아 설치했다.
google-chrome --product-version
- Solution : Chrome 버전을 확인한 후 그에 맞게 chromedrvier를 다시 설치한다.