본문 바로가기
Web.IT.Mobile/QA 자동화

셀레니움(Selenium)에서 “클릭할 요소”를 찾자

by sshongs 2025. 7. 24.

 

1. 크롬(혹은 Edge 등) 브라우저에서 “소스보기/개발자도구” 활용

  • 해당 페이지에서
  • F12(개발자도구) 또는 오른쪽 클릭 → “검사” 실행
  • 원하는 버튼/링크/메뉴 위에서 우클릭 → “검사”로 해당 HTML 위치 바로 확인

2. 클릭 요소의 “속성”을 확인해야 하는 주요 기준

속성/특징 예시 (HTML 코드) 설명/셀레니움에서 활용 방법
id <button id="login-btn">로그인</button> By.ID, "login-btn"
class <a class="main-menu-item">메뉴</a> By.CLASS_NAME, "main-menu-item"
name <input name="q"> By.NAME, "q"
텍스트(내용) <a>My Ticket</a> By.LINK_TEXT, "My Ticket"
css selector <button class="btn btn-primary" data-id="123"></button> By.CSS_SELECTOR, ".btn.btn-primary" 또는 속성 조합
xpath 모든 요소 가능 (위치, 계층, 속성 등) By.XPATH, "//button[@id='login-btn']"

 

3. 실무 추천

  1. id > name > class > 텍스트 > css selector > xpath 순으로 “고유하고 변화가 적은 속성”을 먼저 쓰는 게 가장 안전
  2. 복수 요소(class가 중복 등)는 find_elements로 리스트로 받아 index로 클릭
  3. 버튼/링크에 id/class가 없고 텍스트만 있는 경우 By.LINK_TEXT, "버튼명" 사용
driver.find_elements(By.CLASS_NAME, "menu-item")[0].click()

4. 정리

웹사이트의 소스(HTML)에서 해당 버튼/메뉴/링크의 “특징적인 속성”을 파악해야 함

선택 방법 장점 단점/주의사항
id 가장 빠르고 정확 id가 없는 경우 사용 불가
class 중복 위험, 복수 가능 여러 요소 중 구분 필요
name form 요소에서 많이 사용 중복 위험 있음
text 한글/영문 구분 가능 동명이 있을 수 있음
css selector 유연함, 강력 구조변경에 취약
xpath 모든 구조 커버 가독성/유지보수 불편

 

반응형

댓글