본문 바로가기
자동화(Automation)

Selenium_WebDriverManager

by Testengineer 2022. 8. 10.
반응형

웹 자동화를 하면서 웹 드라이버를 사용했습니다. 그동안 드라이버들이 브라우저 버전이나 경로를 따로 지정해줘서 사용했는데 드라이버 버전이 올라가면서 새로 받아줘야 하는 불편함이 있다는 걸 깨닫게 되었습니다.

편하고자 자동화를 하는건데, 이러면 편하지 않아서 방법을 찾아보니 웹 드라이버 관련 설정을 쉽게 하는 게 있어서 공유해보고자 합니다!

그러려면 maven 프로젝트로 생성해주고 관리해야 하는데요.

새롭게 Maven Project로 만들어주고, Workspace 위치를 지정해준 다음, 아카이브 타입을 선택해줍니다.

아카이브 타입은 일종의 템플릿이라고 보면 되는데, 본인이 사용하고 싶은 특수한 아카이브가 있는게 아니었기 때문에 maven-archetype-quickstart를 사용했습니다. 해당 메이븐에서 용도에 맞게 조금씩 바꾸어 사용하려고 합니다.

Artifact Id를 추가해주고 Finish를 누르면 maven project가 생성완료 됩니다.

 

여기서 생성된 maven에서 pom.xml을 클릭해서 편집해주면 됩니다.

pom.xml에 dependency를 추가해주면 따로 웹 드라이버 설정을 해주지 않아도 됩니다.

https://bonigarcia.dev/webdrivermanager/

 

WebDriverManager

Selenium WebDriver is a library that allows controlling web browsers programmatically. It provides a cross-browser API that can be used to drive web browsers (e.g., Chrome, Edge, or Firefox, among others) using different programming languages (e.g., Java,

bonigarcia.dev

해당 사이트에 가면 자세한 설명을 볼 수 있습니다. 지원해주는 드라이버는 크롬, 엣지, 파이어폭스, 오페라 등이 있다고 하니깐 다양하게 사용 가능합니다.

 

+추가로 dependency는 다른 것들도 추가 가능합니다.

selenium을 사용할 예정이라 저는 아래 페이지에서 dependency를 검색해 별도로 추가했습니다.

https://mvnrepository.com/

 

그리고 test에서 테스트 코드를 작성해 돌려보면, 따로 경로를 지정하지 않아도 webdrivermanager를 이용해 chromedriver를 사용할 수 있습니다.

package Examples;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import Common.SetUp;
import io.github.bonigarcia.wdm.WebDriverManager;

public class example01 extends SetUp{
	public WebDriver driver;

    @BeforeClass
    public void setupClass() {
        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver();
    }


    @Test
    public void test() {
        driver.get("https://bonigarcia.dev/selenium-webdriver-java/");
        String title = driver.getTitle();

        System.out.println(title);
    }
    
    
	@AfterClass
	public void tearDown() throws Exception{
		driver.quit();
	}
}

 

결과 출력

 

반응형

'자동화(Automation)' 카테고리의 다른 글

TestNG_실행파일  (0) 2022.09.05
Selenium_Assert&Verify  (0) 2022.08.20
Selenium_Wait  (0) 2022.08.05
Selenium_Scroll in Java  (0) 2022.08.01
Selenium_Mobile Emulation  (0) 2022.02.02

댓글