셀레니움(selenium) 에서 find_element 로 찾는 방법은 주로 3가지가 있다.
첫번째는 CSS_SELECTOR 사용
두번째는 CLASS_NAME 사용
세번째는 XPATH 사용
사용하기 제일 쉬운것은 XPATH 인데 상황에 맞게 사용하면 될 듯 하다.
위 3가지에 대한 내용은 selenium document 에서 확인가능하다.
- CSS_SELECTOR
CSS_SELECTOR 의 로케이터 전략을 사용하여 페이지의 요소를 식별한다.
요소에 ID가 있으면 css = #id로 로케이터를 생성하고, 그렇지 않으면 css =[attribute=value] 로 로케이터를 생성한다.
[네이버 쇼핑 로그인 버튼 예시]
개발자도구에서 원하는 위치에서 마우스 오른쪽 클릭하여 css selector 로 복사.
#content > div > div > div.shoppingHomeResponsive_module__N_oCS.shoppingHomeResponsive_my__lweQV > div > button
- CLASS_NAME
HTML 페이지 웹 요소는 속성 클래스를 가질 수 있고, 셀레니움은 CLASS_NAME 로케이터를 사용하여 이러한 요소를 식별합니다.
[네이버 쇼핑 로그인 버튼 예시]
개발자도구에서 원하는 위치 class name 명 검색
loginMobile_button__egj6s
- XPATH
원하는 요소에 도달하기 위해 HTML 문서의 루트를 통해 통과하는 경로인 xpath를 사용하는 경우
[네이버 쇼핑 로그인 버튼 예시]
개발자도구에서 원하는 위치에서 마우스 오른쪽 클릭하여 xpath 로 복사.
/html/body/div[3]/div/div[2]/div/div/div[1]/div/button
다음은 위 세가지 방법으로 클릭하여 화면 이동하는 셀레니움 코드이다.
- CSS_SELECTOR
#네이버 쇼핑 메인 호출하기
url='https://shopping.naver.com/home'
driver.get(url)
time.sleep(1)
#로그인 버튼 클릭하여 이동하기
link_selector = "#content > div > div > div.shoppingHomeResponsive_module__N_oCS.shoppingHomeResponsive_my__lweQV > div > button"
mylink = driver.find_element(By.CSS_SELECTOR,link_selector)
mylink.send_keys(Keys.ENTER)
- CLASS_NAME
#네이버 쇼핑 메인 호출하기
url='https://shopping.naver.com/home'
driver.get(url)
time.sleep(1)
#로그인 버튼 클릭하여 이동하기
link_selector = "loginMobile_button__egj6s"
mylink = driver.find_element(By.CLASS_NAME,link_selector)
mylink.send_keys(Keys.ENTER)
- XPATH
#네이버 쇼핑 메인 호출하기
url='https://shopping.naver.com/home'
driver.get(url)
time.sleep(1)
#로그인 버튼 클릭하여 이동하기
link_selector = "/html/body/div[3]/div/div[2]/div/div/div[1]/div/button"
mylink = driver.find_element(By.XPATH,link_selector)
mylink.send_keys(Keys.ENTER)
'셀레니움(selenium)' 카테고리의 다른 글
셀레니움으로 네트워크 로그 추출 (with 파이썬) (0) | 2024.05.07 |
---|---|
셀레니움으로 화면 스크롤 내려보자 (with 파이썬) (0) | 2024.05.04 |
셀레니움에서 클릭하는 법 (with python) (0) | 2024.05.02 |