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 자동화' 카테고리의 다른 글
셀레니움에서 팝업창 제어 - 2가지 (1) | 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 |
셀레니움 모바일환경 테스트 방법 (0) | 2025.07.19 |
댓글