728x90
728x90
Selenium을 이용한 웹 자동화 테스트를 효율적으로 관리하고 실행하기 위해 이클립스에서 Maven 프로젝트를 구성하는 과정을 단계별로 자세히 알아보겠습니다. Maven은 프로젝트 의존성 관리를 자동화하여 개발 생산성을 높여주는 도구입니다.
1. 이클립스에서 Maven 프로젝트 생성하기
- File > New > Other 메뉴를 선택합니다.
- Maven > Maven Project를 선택하고 Next를 클릭합니다.
- Create a simple project를 선택하고 Next를 클릭합니다.
- Group Id, Artifact Id 등 프로젝트 정보를 입력하고 Finish를 클릭합니다.
728x90
2. pom.xml 파일 수정하기
생성된 프로젝트의 pom.xml 파일을 열어 Selenium 관련 의존성을 추가합니다. 대표적인 의존성은 다음과 같습니다.
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.8.3</version> </dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.7.1</version> </dependency>
- selenium-java: Selenium WebDriver를 사용하기 위한 핵심 라이브러리입니다.
- testng: 테스트 케이스를 작성하고 실행하기 위한 테스트 프레임워크입니다.
3. Java 클래스 생성 및 테스트 코드 작성하기
- src/test/java 디렉토리에 새로운 Java 클래스를 생성합니다.
- 생성된 클래스에 Selenium WebDriver를 이용하여 웹 페이지와 상호작용하는 테스트 코드를 작성합니다.
package myfirst;
/*
1. 파일 권한 확인
먼저 ChromeDriver 파일에 올바른 실행 권한을 부여합니다.
chmod +x /Users/ihongseok/eclipse-workspace/myfirst/chromedriver
2. 시스템 환경설정 열기
상단 메뉴에서 Apple 로고 > 시스템 설정 > 개인정보 및 보안으로 이동합니다.
실행 허용 선택
"ChromeDriver가 확인되지 않았습니다."라는 메시지가 보일 것입니다.
"어쨌든 열기"를 선택합니다.
3. 개발자 서명 무시
이 방법은 보안 위험이 있을 수 있으므로 신뢰할 수 있는 파일에서만 사용하세요.
sudo spctl --add --label "approved" /Users/ihongseok/eclipse-workspace/myfirst/chromedriver
sudo spctl --enable --label "approved"
*/
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;
import org.openqa.selenium.JavascriptExecutor;
public class GoogleSearch
{
public static void main(String[] args)
{
System.setProperty("webdriver.chrome.driver", "/Users/ihongseok/eclipse-workspace/myfirst/chromedriver/chromedriver");
ChromeOptions options = new ChromeOptions();
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
// options.addArguments("--headless"); // 필요 시 제거
WebDriver driver = new ChromeDriver(options);
try
{
driver.get("https://www.google.com");
// 검색창에 텍스트 입력
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("대한민국");
// 검색 버튼 기다리기
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(1));
WebElement searchButton = wait.until(ExpectedConditions.elementToBeClickable(By.name("btnK")));
// 버튼 클릭
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", searchButton);
// 결과 페이지 제목 출력
System.out.println("Page title is: " + driver.getTitle());
} catch (Exception e)
{
e.printStackTrace();
} finally
{
driver.quit();
}
}
}
- System.setProperty 메서드를 통해 ChromeDriver의 경로를 설정합니다.
4. 테스트 실행하기
- 프로젝트 탐색기에서 pom.xml 파일을 오른쪽 클릭하고 Run As > Maven test를 선택합니다.
- 또는 Maven Goals 창에서 clean test를 실행하여 프로젝트를 빌드하고 테스트를 실행합니다.
728x90
5. 추가 설정 (선택 사항)
- WebDriverManager: WebDriver를 자동으로 다운로드하고 설정해주는 라이브러리를 사용하면 ChromeDriver 경로 설정을 생략할 수 있습니다.
- Page Object 모델: 테스트 코드의 가독성과 유지보수성을 높이기 위해 Page Object 모델을 적용할 수 있습니다.
- CI/CD 연동: Jenkins, GitHub Actions 등 CI/CD 도구와 연동하여 자동화된 테스트 환경을 구축할 수 있습니다.
WebDriverManager란 무엇인가?
WebDriverManager는 Selenium WebDriver와 함께 사용되는 오픈 소스 Java 라이브러리입니다. 웹 드라이버(ChromeDriver, GeckoDriver 등)를 자동으로 다운로드하고 설정하여 개발자가 수동으로 드라이버 관리에 신경 쓰지 않도록 해줍니다. 이를 통해 개발 환경 설정 시간을 단축하고, 버전 관리 문제를 해결하며, 테스트 환경의 안정성을 높일 수 있습니다.
WebDriverManager의 장점
- 자동 다운로드 및 설정: 별도의 설정 없이 필요한 웹 드라이버를 자동으로 다운로드하고 시스템 환경 변수에 설정합니다.
- 버전 관리: 프로젝트에서 사용하는 Selenium 버전에 맞는 웹 드라이버를 자동으로 선택합니다.
- 크로스 플랫폼 지원: Windows, macOS, Linux 등 다양한 운영체제를 지원합니다.
- 간편한 사용법: 몇 줄의 코드만으로 웹 드라이버를 초기화할 수 있습니다.
WebDriverManager 사용 예제
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
public class WebDriverManagerExample {
public static void main(String[] args) {
// ChromeDriver 설정
WebDriverManager.chromedriver().setup();
// ChromeDriver 인스턴스 생성
WebDriver driver = new ChromeDriver();
// 특정 웹 페이지로 이동
driver.get("https://www.example.com");
// 웹 페이지 제목 출력
System.out.println("Page title is: " + driver.getTitle());
// 브라우저 종료
driver.quit();
}
}
코드 설명:
- WebDriverManager.chromedriver().setup();: ChromeDriver를 설정합니다. 이 코드 한 줄로 ChromeDriver가 자동으로 다운로드되고 시스템 환경 변수에 설정됩니다.
- WebDriver driver = new ChromeDriver();: ChromeDriver 인스턴스를 생성하여 WebDriver 인터페이스에 할당합니다.
- driver.get("https://www.example.com");: 특정 웹 페이지로 이동합니다.
- System.out.println("Page title is: " + driver.getTitle());: 현재 페이지의 제목을 출력합니다.
- driver.quit();: 브라우저를 종료합니다.
WebDriverManager 활용 시 주의 사항
- 웹 드라이버 버전: WebDriverManager는 프로젝트에서 사용하는 Selenium 버전에 맞는 웹 드라이버를 자동으로 선택하지만, 필요에 따라 특정 버전의 웹 드라이버를 지정할 수 있습니다.
- 운영체제: WebDriverManager는 운영체제에 맞는 웹 드라이버를 자동으로 다운로드하지만, 시스템 환경에 따라 추가 설정이 필요할 수 있습니다.
- 프록시 설정: 프록시 환경에서 WebDriverManager를 사용하려면 추가적인 설정이 필요할 수 있습니다.
WebDriverManager는 Selenium 자동화를 위한 필수적인 도구입니다. 웹 드라이버 관리를 간소화하여 개발 생산성을 향상시키고, 테스트 환경의 안정성을 높일 수 있습니다. 본 글에서 소개한 예제를 바탕으로 다양한 Selenium 자동화 작업에 WebDriverManager를 활용해 보세요.
참고 자료:
- WebDriverManager GitHub: https://github.com/bonigarcia/webdrivermanager
- Selenium 공식 문서: https://www.selenium.dev/
728x90
728x90
'Java를 배워보자' 카테고리의 다른 글
이클립스에서 Maven 빌드 시 JAR 파일에 의존성 포함하기: Assembly 플러그인 활용 가이드 (0) | 2024.11.16 |
---|---|
WebDriverManager를 활용한 Selenium WebDriver 자동화 환경 구축 가이드 (0) | 2024.11.16 |
Java Maven으로 Selenium WebDriver를 이용한 Google 검색 자동화 및 콘솔 실행 과정 상세 가이드 (0) | 2024.11.15 |
자바와 셀레니움: 웹 자동화의 세계로 떠나요! (0) | 2024.11.15 |
SAP JCo를 활용한 Java와 SAP 통합 가이드: 상세 예제 및 설명 (0) | 2024.11.13 |