반응형

파이썬, 셀레니움 웹 페이지에서 작업 대상 선택  

 

글. 수알치 오상문 

 

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"})

 

 

반응형

+ Recent posts