반응형
파이썬, 셀레니움 웹 페이지에서 작업 대상 선택
글. 수알치 오상문
1. 특정 대상(영역) 지정하여 찾기
대상 (영역) | 설명 |
클래스 이름 | 일치하는 class 이름으로 찾기 (class의 복합 이름은 불가능) |
CSS 셀렉터 | 대상으로 접근한 CSS 경로를 이용하여 찾기 |
id | id 속성 값으로 찾기 |
name | name 속성 값으로 찾기 |
link 텍스트 | 보이는 텍스트가 검색 값과 일치하는 앵커 요소로 찾기. |
link 부분 텍스트 | 보이는 텍스트에 검색 값이 포함된 앵커 요소를 찾기. 여러 개면 첫 번째 요소 선택 |
tag 이름 | HTML 태그 이름으로 찾기 |
xpath | XPath로 표현된 경로로 찾기 |
2. 상대 기준으로 찾기
above, below, near, to_left_of, to_right_of 등을 이용하여 특정 위치를 기준으로 위, 아래, 근처, 왼쪽, 오른쪽에 있는 위치를 가리킬 수 있다.
다음과 같은 입력 로그인 창이 있다고 하자.
이메일 주소(id='email'), 비밀번호(id='password')를 입력하는 칸에 접근할 때, input 요소를 기준으로 above, below, near를 이용하여 접근할 수 있다. (물론, 직접 접근할 수 있는 경우에는 그렇게 처리하면 된다.)
# id password 요소 위에 있는 input 위치
email_locator = locate_with(By.TAG_NAME, "input").above({By.ID: "password"})
# id email 요소 아래에 있는 input 위치
password_locator = locate_with(By.TAG_NAME, "input").below({By.ID: "email"})
# lbl-email id와 가장 가까운 input 위치
email_locator = locate_with(By.TAG_NAME, "input").near({By.ID: "lbl-email"})
다음 예제는 버튼에 접근할 때 to_left_of, to_right_of 기능을 이용하고 있다. (물론, 직접 접근할 수 있는 경우에는 그렇게 처리하면 된다.)
# submit의 왼쪽 버튼
cancel_locator = locate_with(By.TAG_NAME, "button").to_left_of({By.ID: "submit"})
# cancle의 오른쪽 버튼
submit_locator = locate_with(By.TAG_NAME, "button").to_right_of({By.ID: "cancel"})
이들 상대 접근 기능은 복합하여 사용할 수도 있다.
submit_locator = locate_with(By.TAG_NAME, "button").below({By.ID: "email"}).to_right_of({By.ID: "cancel"})
반응형
'웹 크롤링, 스크래핑' 카테고리의 다른 글
파이썬, 셀레니움 요소 상태, 값, 텍스트 확인 (0) | 2022.07.16 |
---|---|
파이썬, 셀레니움 요소 클릭, 값 입력, 값 삭제, 단축키 입력 (0) | 2022.07.16 |
파이썬, 셀레니움 스크린샷 (0) | 2022.07.16 |
파이썬, 셀레니움 윈도우 이동, 크기 제어 (0) | 2022.07.16 |
파이썬, 셀레니움 브라우저 창과 탭 이동 제어 (0) | 2022.07.16 |