Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java와 Selenium WebDriver로 브라우저 로그 캡처하는 방법

Selenium을 사용하면 테스트 실행 중 발생하는 브라우저 로그를 손쉽게 캡처할 수 있습니다. 브라우저 로그는 테스트 실패 원인을 분석하거나 콘솔 오류, 네트워크 문제 등을 디버깅할 때 매우 유용합니다.

브라우저 로그 캡처 원리

Selenium에서 로그를 캡처하려면 먼저 WebDriver 객체를 RemoteWebDriver 타입으로 형 변환(casting)한 후 초기화해야 합니다. 그다음 setLogLevel 메서드를 사용하여 원하는 로그 레벨을 설정하면 됩니다.

RemoteWebDriver를 사용하기 위해서는 코드에 다음 import 문이 반드시 포함되어야 합니다.

import org.openqa.selenium.remote.RemoteWebDriver;

문법(Syntax)

((RemoteWebDriver) driver).setLogLevel(Level.INFO);

로그 레벨은 Level.INFO 외에도 Level.SEVERE, Level.WARNING, Level.FINEjava.util.logging.Level에서 제공하는 다양한 값을 사용할 수 있습니다.

예제 코드

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.remote.RemoteWebDriver;
import java.util.logging.Level;

public class BrwLogs {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver",
        "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        // setLogLevel 메서드로 로깅 활성화
        ((RemoteWebDriver) driver).setLogLevel(Level.INFO);
        driver.get("https://www.tutorialspoint.com/index.htm");
        // 요소 식별
        driver.findElement(By.id("gsc-i-id1")).sendKeys("Selenium");
        driver.quit();
    }
}

코드 설명

1. chromedriver 경로 설정: System.setProperty를 통해 ChromeDriver 실행 파일의 위치를 지정합니다.
2. 드라이버 인스턴스 생성: ChromeDriver 객체를 생성하여 브라우저 세션을 시작합니다.
3. 로그 레벨 설정: 드라이버를 RemoteWebDriver로 형 변환한 후 setLogLevel(Level.INFO)를 호출하여 INFO 수준의 로그를 활성화합니다.
4. 페이지 이동 및 요소 조작: 지정된 URL로 이동한 뒤 검색 입력창을 찾아 "Selenium"이라는 텍스트를 입력합니다.
5. 세션 종료: driver.quit()으로 브라우저를 종료하고 리소스를 해제합니다.

실행 결과

위 코드를 실행하면 콘솔에 INFO 레벨의 브라우저 로그가 출력됩니다. 이 로그에는 WebDriver 명령 처리 과정과 관련된 상세 정보가 포함되어 있어, 테스트 자동화 중 발생하는 문제를 추적하고 디버깅하는 데 큰 도움이 됩니다.