테스트 / 자동화

셀레늄(Selenium)

Selenium은 웹브라우저의 이동·입력·클릭 등을 자동화해 웹앱을 반복 확인할 수 있게 하는 도구 모음입니다.

쉬운 설명

신청 폼을 고칠 때마다 브라우저를 열고 같은 내용을 입력하는 일이 반복될 수 있어요. Selenium으로 이런 조작을 코드에 적으면 브라우저가 정한 순서대로 실행하게 할 수 있어요. 이때 Selenium WebDriver는 코드에서 브라우저를 제어하는 데 사용해요. 클릭을 끝냈다는 것과 기능이 성공했다는 것은 다르므로, 화면이나 데이터가 기대한 상태인지 확인하는 조건도 작성해야 해요.

이런 상황에서 만나요

AI에게 “신청 버튼을 누르고 완료 문구가 나오는지 자동으로 확인해 줘”라고 요청했다고 해 볼게요. 아래는 테스트용 폼에서 이름을 입력하고 제출한 뒤 결과 문구를 비교하는 파이썬 코드의 일부예요.

클릭한 뒤 완료 문구까지 확인해요

설명용 화면
1이름 입력
field = driver.find_element(
    By.ID, "name"
)
field.send_keys(
    "테스트 참가자"
)
2제출 버튼 클릭
button = driver.find_element(
    By.ID, "submit"
)
button.click()
3완료 상태 확인
wait = WebDriverWait(
    driver, 5
)
wait.until(
    lambda d:
    d.find_element(
        By.ID, "result"
    ).text == "신청 완료"
)
  1. 1테스트 페이지에서 id가 name인 입력란을 찾아요.
  2. 2id가 submit인 버튼을 클릭해요.
  3. 3최대 5초 동안 result 요소의 문구가 신청 완료인지 확인해요.
테스트 페이지가 열린 driver와 By, WebDriverWait를 준비한 파이썬 부분 예시입니다. id와 문구는 가상 폼에 맞춘 값이며 실제 사이트에서는 해당 화면에 맞춰야 합니다.

요소를 찾는 id와 실제 페이지의 id가 맞아야 해요. 화면이 늦게 바뀔 수 있으므로 완료 문구가 나올 때까지 정한 시간 안에서 기다려요. 버튼 클릭 명령이 실행됐다는 이유만으로 테스트를 통과시키지 않고, 기대한 결과를 확인해요.

헷갈리기 쉬운 점

Selenium이 실행되면 오류도 알아서 찾아 주나요?

무엇을 조작하고 어떤 결과를 확인할지는 작성한 코드에 달려 있어요. 신청 완료 문구만 확인하면 데이터가 실제로 저장됐는지는 놓칠 수 있어요. 테스트 목적에 따라 내역 조회 등 필요한 확인을 더해요.

화면 구조가 바뀌면 요소를 찾는 코드도 수정해야 할 수 있어요. 무조건 몇 초씩 쉬는 방식보다 원하는 요소나 상태가 준비됐는지 기다리도록 작성해요. 실서비스에서 자동 입력을 실행하기 전에는 테스트 대상과 데이터를 확인해요.

왜 알아야 할까요?

AI에게 “자동으로 눌러 줘”를 넘어서 어떤 결과까지 확인해야 하는지 요청할 수 있어요. 반복 조작 자동화와 기능 검증을 구분해, 실행은 끝났는데 오류를 놓치는 상황을 줄일 수 있어요.

조금 더 자세히

WebDriver는 지원하는 브라우저를 제어하기 위한 인터페이스와 구현을 사용합니다. 사용하는 언어의 Selenium 라이브러리와 브라우저 실행 환경을 준비해야 하며, 아래 코드는 설치·브라우저 열기·종료 처리를 생략한 부분 예시입니다.

브라우저에서 페이지 로딩이 끝나도 자바스크립트가 화면을 추가로 바꿀 수 있습니다. 명시적 대기는 원하는 조건을 일정 시간 동안 확인합니다. 시간이 지났는데 조건이 만족되지 않으면 실패하며, 조건을 정확하게 정해야 엉뚱한 성공을 피할 수 있습니다.

직접 사용할 때 확인해 보세요

  • 실제 페이지의 요소 이름과 선택 기준을 확인한다
  • 조작 후 기대한 결과를 검증한다
  • 기다릴 조건과 제한 시간을 정한다

관계 지도

셀레늄(Selenium) 중심으로 관련 개념의 정의와 관계를 한눈에 정리했습니다.
셀레늄(Selenium)의 정의와 관련 개념 간 관계를 설명한 계층형 그래프