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. 실무 추천
- id > name > class > 텍스트 > css selector > xpath 순으로 “고유하고 변화가 적은 속성”을 먼저 쓰는 게 가장 안전
 - 복수 요소(class가 중복 등)는 find_elements로 리스트로 받아 index로 클릭
 - 버튼/링크에 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 | 모든 구조 커버 | 가독성/유지보수 불편 | 
반응형
    
    
    
  'Web.IT.Mobile > QA 자동화' 카테고리의 다른 글
| Playwright vs Selenium (0) | 2025.07.27 | 
|---|---|
| 셀레니움에서 팝업창 제어 - 2가지 (0) | 2025.07.24 | 
| 여러 케이스를 수행시키고 싶을 때의 방법들 (1) | 2025.07.24 | 
| pytest plug-ins (0) | 2025.07.20 | 
| 멀티 브라우저/멀티 환경 파라미터라이즈(Parametrize) (0) | 2025.07.20 | 
| pytest 입문 로드맵 (0) | 2025.07.20 | 
| TestNG vs pytest 기능 차이 (0) | 2025.07.20 | 
										
									
댓글