갈루아의 반서재

셀레늄을 이용하여 네이버 검색창을 띄우고, 검색 결과 중 특정 문자열을 가지는 결과를 클릭하는 스크립트를 작성해봅니다.


주의! 기본중의 기본이지만 대소문자 구별은 철저하게 헤주세요. ImportError 발생할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#-*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
 
# Firefox 웹드라이버 생성
driver = webdriver.Firefox()
 
# 주어진 URL 웹페이지 로딩
driver.get("http://www.naver.com")
 
# 해당 사이트의 제목이 NAVER 인지 확인 
assert "NAVER" in driver.title
 
# element 이름으로 검색창의 이름 확인, 파이어폭스에서 F12 키 눌러서 찾을 수 있음. 아래 이미지 참조
elem = driver.find_element_by_name("sform")
 
# 검색어 입력
elem.send_keys("antilibrary")
 
# 검색어 전송
elem.submit()
 
# 검색결과 페이지에서 특정 문자열을 포함하는 링크 텍스트 찾기 
elem2 = driver.find_element_by_partial_link_text("Anti")
 
# 해당 링크 클릭
elem2.click()
 
# 검색결과창 종료
driver.close()
cs



[참고사항]

1) 파이어폭스에서 F12 키를 눌러 해당 엘러먼트의 속성 확인




2) selenium.webdriver.common.keys 에서 특정 Keys 임포트
예를 들어 다음과 같음
elem
.send_keys(Keys.RETURN)

더 많은 내용은 http://selenium-python.readthedocs.org/api.html?highlight=selenium.webdriver.common.keys#module-selenium.webdriver.common.keys 참조


3) find_by_element_* 기타 메서드에 대한 정보는 아래 링크 참조

http://selenium-python.readthedocs.org/locating-elements.html#locating-elements


4) 추가 WebDriver API 정보는 아래 참조

http://selenium-python.readthedocs.org/api.html