네이버메인에 find element/elements 사용하기
파이썬 셀레늄에서 find element는 많은 메소드 기능을 제공하여,
다양한 방식으로 웹페이지의 요소(element)를 찾을 수 있는 방법중 하나입니다.
find element 메소드만 잘 파악하고 있으면,
큰 어려움이 없이 셀레늄을 통해 자동화 기능을 만드실 수 있습니다.
단일 element | 복수 elements | 설명 |
---|---|---|
find_element_by_id | 태그의 id값으로 추출 | |
find_element_by_name | find_elements_by_name | 태그의 name값으로 추출 |
find_element_by_xpath | find_elements_by_xpath | 태그의 경로로 추출 |
find_element_by_link_text | find_elements_by_link_text | a태그 텍스트값으로 추출 |
find_element_by_partial_link_text | find_elements_by_partial_link_text | a태그의 자식 텍스트 값을 추출 |
find_element_by_tag_name | find_elements_by_tag_name | 태그 이름으로 추출 |
find_element_by_class_name | find_elements_by_class_name | 태그의 클래스명으로 추출 |
find_element_by_css_selector | find_elements_by_css_selector | css선택자로 추출 |
■find_element_by_id
driver.find_element_by_id('account').click()
※ click() 함수를 사용하게 되면 엘리먼트를 클릭하게 됩니다. (여기서는 로그인 페이지로 이동합니다.)
■find_elements_by_name
driver.find_elements_by_name('where').text
※ text는 추출된 엘리먼트의 텍스트를 출력합니다.
■find_element_by_xpath
driver.find_element_by_xpath('//*[@id="NM_FAVORITE"]/div[1]/ul[1]/li[3]/a').text
■find_element_by_link_text
driver.find_element_by_link_text('카페').text
■find_element_by_partial_link_text
driver.find_element_by_partial_link_text('블로그').text
■find_element_by_tag_name
driver.find_element_by_tag_name('form').text
■find_element_by_class_name
driver.find_element_by_class_name('blind').text
■find_element_by_css_selector
driver.find_element_by_css_selector('#account > a > i > span.blind').text
■find_elements... 복수개 엘리먼트
blind_list = driver.find_elements_by_class_name('blind')
for idx, v in enumerate(blind_list):
print(v.text)
if idx==3:
break
위 그림을 보시면 blind로 59개의 항목이 찾아집니다.
find_element는 첫번째만 가져옵니다.
find_elements 는 조건에 맞는 blind 전체가 blind_list(iterable)에 담겨 있습니다.
반복문을 이용하여 출력해보았습니다.
TAG: #selenium #셀레늄 #naver #find_element #find_elements
Comments
Login: