Java를 배워보자

Java Maven으로 Selenium WebDriver를 이용한 Google 검색 자동화 및 콘솔 실행 과정 상세 가이드

_Blue_Sky_ 2024. 11. 15. 20:47
728x90
728x90

 

이 글에서는 Java Maven 환경에서 Selenium WebDriver를 활용하여 Google 검색을 자동화하고, 콘솔에서 실행하는 과정을 단계별로 자세히 설명합니다.

1. 개발 환경 설정

  • Java 개발 키트 (JDK) 설치: Oracle 또는 OpenJDK를 다운로드하여 설치합니다.
  • Maven 설치: Apache Maven 공식 홈페이지에서 다운로드하여 설치합니다.
  • IDE 설치 (선택): IntelliJ IDEA, Eclipse 등의 IDE를 사용하면 개발 편의성을 높일 수 있습니다.

2. Maven 프로젝트 생성

  1. 터미널 또는 명령 프롬프트 실행: 프로젝트를 생성할 디렉토리로 이동합니다.
  2. Maven 명령 실행: 다음 명령을 실행하여 새로운 Maven 프로젝트를 생성합니다.
    • groupId: 프로젝트 그룹 ID
    • artifactId: 프로젝트 아티팩트 ID 
      mvn archetype:generate -DgroupId=com.example -DartifactId=selenium_google_search -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
      

3. 의존성 추가

생성된 프로젝트의 pom.xml 파일을 열고 다음 의존성을 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.8.3</version> </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-chrome-driver</artifactId>
        <version>4.8.3</version> </dependency>
</dependencies>
 
 
  • selenium-java: Selenium WebDriver를 사용하기 위한 핵심 라이브러리
  • selenium-chrome-driver: ChromeDriver를 사용하기 위한 라이브러리 (필요한 경우)

4. 소스 코드 작성

src/main/java/com/example/selenium_google_search/GoogleSearch.java 파일을 열고 제공된 코드를 붙여넣습니다.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class GoogleSearch {
    public static void main(String[] args) {
        // ChromeDriver 설정 (WebDriver 경로 설정)
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");

        // WebDriver 인스턴스 생성
        WebDriver driver = new ChromeDriver();

        // 구글 검색 페이지로 이동
        driver.get("https://www.google.com");

        // 검색창에 키워드 입력
        driver.findElement(By.name("q")).sendKeys("Selenium");

        // 검색 버튼 클릭
        driver.findElement(By.name("btnK")).click();

        // 5초 대기
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // 브라우저 종료
        driver.quit();
    }
}
  • ChromeDriver 경로 설정: System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); 부분에 ChromeDriver 실행 파일의 절대 경로를 입력합니다.
  • WebDriver 인스턴스 생성: WebDriver driver = new ChromeDriver(); 라인에서 ChromeDriver 인스턴스를 생성하여 Chrome 브라우저를 제어합니다.

5. ChromeDriver 다운로드

6. 콘솔에서 실행

  1. 터미널 또는 명령 프롬프트 실행: 프로젝트 디렉토리로 이동합니다.
  2. Maven 명령 실행: 다음 명령을 실행하여 프로젝트를 컴파일하고 실행합니다.
     
    mvn clean compile exec:java -Dexec.mainClass="com.example.selenium_google_search.GoogleSearch"
     
     
     

7. 실행 결과 확인

콘솔에 출력되는 로그를 확인하고, Chrome 브라우저가 열려 Google 검색이 자동으로 진행되는 것을 확인할 수 있습니다.

추가 설명

  • WebDriver 인터페이스: 다양한 브라우저를 제어하기 위한 인터페이스입니다. ChromeDriver는 Chrome 브라우저를 제어하기 위한 구현체입니다.
  • findElement 메소드: 웹 페이지의 특정 요소를 찾기 위한 메소드입니다. By 클래스를 사용하여 다양한 방법으로 요소를 찾을 수 있습니다.
  • sendKeys 메소드: 찾은 요소에 문자열을 입력합니다.
  • click 메소드: 찾은 요소를 클릭합니다.
  • Thread.sleep 메소드: 코드 실행을 일시적으로 중단하여 웹 페이지 로딩을 기다립니다.

주의 사항

  • ChromeDriver 버전: Chrome 버전과 ChromeDriver 버전이 일치해야 합니다.
  • WebDriver 경로: ChromeDriver 실행 파일의 절대 경로를 정확하게 설정해야 합니다.
  • 웹 페이지 구조: 웹 페이지의 구조가 변경될 경우, findElement 메소드의 파라미터를 수정해야 할 수 있습니다.
  • 자동화 도구 사용 시 주의: 웹사이트의 로봇 규정을 준수해야 합니다.

 

728x90

Jar 파일로 패키징

이 명령어 [ mvn clean compile exec:java -Dexec.mainClass="com.example.selenium_google_search.GoogleSearch" ] 는 Maven 프로젝트를 컴파일하고, 지정된 메인 클래스를 실행하는 명령입니다. 하지만 이 방법은 매번 명령어를 입력해야 하고, 의존성 관리가 번거롭다는 단점이 있습니다.

 

실행 가능한 Jar 파일로 패키징하면 다음과 같은 장점이 있습니다.

  • 단일 파일 실행: 하나의 파일로 프로젝트를 실행할 수 있어 편리합니다.
  • 의존성 포함: 모든 의존성이 Jar 파일에 포함되어 있어 별도의 설정 없이 실행할 수 있습니다.
  • 배포 용이: 다른 환경에서도 쉽게 배포할 수 있습니다.

Maven을 이용한 Jar 파일 생성

Maven의 maven-jar-plugin 플러그인을 사용하여 Jar 파일을 생성할 수 있습니다.

1. pom.xml 수정

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.2</version>
        <configuration>
          <archive>
            <manifest>
              <mainClass>com.example.selenium_google_search.GoogleSearch</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
  • mainClass: 실행할 메인 클래스의 완전한 경로를 지정합니다.

2. Jar 파일 생성:

mvn clean package
 
 

위 명령어를 실행하면 target 디렉토리에 실행 가능한 Jar 파일이 생성됩니다.

3. Jar 파일 실행:

java -jar target/your-project-name.jar
 
 

추가 설정 (선택 사항)

  • 인클루드/익스클루드: include와 exclude 태그를 사용하여 Jar 파일에 포함할 파일을 조절할 수 있습니다.
  • 라이브러리 범위: scope를 사용하여 어떤 라이브러리를 Jar 파일에 포함할지 설정할 수 있습니다.
  • 플러그인 설정: maven-jar-plugin 플러그인의 다양한 설정을 통해 Jar 파일 생성을 커스터마이징할 수 있습니다.

 

이 글에서는 Java Maven 환경에서 Selenium WebDriver를 이용하여 Google 검색을 자동화하는 방법을 상세히 설명했습니다. 이를 통해 웹 자동화의 기본적인 개념을 이해하고, 다양한 웹 테스트 및 자동화 작업에 활용할 수 있습니다.

728x90
728x90