본문 바로가기
Language/JAVA

[Selenium] 자바 셀레니움 설치 (with geckodriver & firefox)

by 아이엠제니 2024. 1. 29.

 

os: windows 11 home

IDE: IntelliJ


 

Selenium (셀레니움)

  • 셀레니움은 웹 응용 프로그램을 자동화하는 데 사용되는 오픈 소스 프레임워크
  • 웹 애플리케이션의 테스트 자동화, 웹 스크래핑(데이터 수집), 웹 애플리케이션의 작동 확인 등 다양한 웹 자동화 업에 사용
  • Java, Python, C#, Ruby, JavaScript 등 지원

 

주요 구성 요소

  • WebDriver: 다양한 웹 브라우저를 제어하기 위한 API. 웹드라이버를 사용하여 웹 페이지를 열고, 폼을 작성하고, 클릭하고, 스크롤하고, 데이터를 수집하고, 웹 애플리케이션의 동작을 테스트할 수 있음
  • Selenium IDE: 브라우저 확장 프로그램. 웹 애플리케이션을 녹화하고 테스트 스크립트를 생성하는 데 사용됨
  • Selenium Grid: 여러 컴퓨터 또는 가상 머신에서 병렬로 웹 테스트를 실행할 수 있도록 지원하는 도구임. 대규모 테스트 자동화 작업을 처리하는 데 유용

 

출처: ChatGPT 3.5

 

 


error에 빠져 버린...

geckodriver와 셀레니움... 그리고 파이어폭스의 지옥에 빠진 것 같은 기분이 들었다.

사내에서 테스트 자동화를 위해서 셀레니움을 사용한다고 했다.

그래서 이번에 셀레니움의 존재에 대해서 알게 되었다.

셀레니움 WebDriver는 geckodriver와 chrome driver 중 geckodriver를 사용하기로 한다.

geckodriver의 경우 파이어폭스 브라우저를 사용하고, chrome driver의 경우에는 크롬을 사용한다.

회사에 있는 다른 직원이 이미 셀레니움을 사용해봤는데, 그때는 크롬 드라이버를 사용했다고 한다.

고로 geckodriver는 처음이라는 소리이다.

최신 버전의 파이어폭스와 geckodirver 그리고 셀레니움을 설치했으나?

호환이 안 되는 건지, 테스트를 돌리면 에러가 계속 났다. (샘플 테스트 코드가 만들어져 있는 상태)

 

java.lang.IllegalStateException: Failed to load ApplicationContext
.
.
.
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webDriverService' defined in file

 

 

셀레니움과 geckodriver 그리고 파이어폭스 간의 버전 매핑이 안 되는 것 같았다. (추측)

그렇게 삭제하고 설치하고를 반복하던 중!

매핑 버전을 확인할 수 있는 사이트를 발견하게 되었다.

 

 


geckodriver & Selenium & Firefox 매핑 버전 확인 방법

 

Supported platforms — Firefox Source Docs documentation

The following table shows a mapping between geckodriver releases, and required versions of Selenium and Firefox: Android Starting with the 0.26.0 release geckodriver is able to connect to Android devices, and to control packages which are based on GeckoVie

firefox-source-docs.mozilla.org

 

진작에 알았으면, 시간 낭비를 안 했을 것 같기도 하다.

현재 최신 버전의 geckodriver는 0.34.0이다.

selenium은 4.18.0이 최신 버전인데, 3.11 이상을 사용하면 되는 것 같다.

파이어폭스는 최소 115 이상을 사용하면 되는 것 같다.

이상한 게 저렇게 했는데도 계속 에러가 나다가, 갑자기 된다..?

뭐지?

이전 버전으로 돌려보고 다시 해봤는데도 된다.

뭐가 문제였을까. (...)

 

 


Firefox 다운로드

 

Firefox 115.0, See All New Features, Updates and Fixes

 

www.mozilla.org

파이어폭스는 115를 찾아서 설치해 봤으나?

최선 버전이 설치가 되었다.

 

 

파이어폭스 설치 후 오른쪽 상단에 메뉴 > 도움말 > 파이어폭스 정보를 클릭하면 버전을 확인할 수 있다.

122.0 (64-비트)가 최신 버전인 듯.

 

 


geckodriver 다운로드

 

Releases · mozilla/geckodriver

WebDriver for Firefox. Contribute to mozilla/geckodriver development by creating an account on GitHub.

github.com

geckodriver는 0.34.0이 최신 버전이다.

윈도 64로 다운로드하여서 설치!

zip 파일로 다운로드가 되는데, 다운로드한 후에 설치를 원하는 경로에 넣으면 된다.

 

이렇게 넣으면 된다.

`geckodriver.exe` 파일을 볼 수 있다.

C:\driver_library

 

 


Selenium 버전 확인

 

Index of /repositories/snapshots/org/seleniumhq/selenium/selenium-java

2.0-SNAPSHOT/ Sun Mar 15 20:04:27 UTC 2020  

oss.sonatype.org

셀레니움 버전은 4.18.0이 최신 버전인데, 이미 4.16.1으로 세팅이 되어 있었다.

혹시 몰라 4.10.0으로 바꿔도 봤는데, 그때도 테스트가 되긴 되었다.

 

pox.xml dependency

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
<!--            <version>4.10.0</version>-->
            <version>4.16.1</version>
            <scope>test</scope>
        </dependency>

필요에 따라 pox.xml에서 셀레니움 버전을 수정해주면 된다.

 

 

테스트 안 되고, 에러가 계속 나서 정말 계속 검색을 하고 찾아다녔다.

되긴 되었고, 확인을 위해 이전에 설정했던 걸로 돌리고 다시 해봤으나?

원래는 안 되던 게, 되기 시작했다.

일단 셀레니움 설치와 필요한 것은 다 적어 놓고, 추후에 동일한 에러가 발생 시 원인을 제대로 찾아야 할 것 같다.

이전처럼 재현이 안 된다.

 

몇 개월 동안 프로젝트 때문에 인프라와 가까이했다. (인프라도 많이 부족..)

근데 자바(+스프링)는 정말 오랜만이라서, 다시 열심히 해야 할 것 같다.

 

 

300x250