<시작>

간단한 WebTool들의 Automation을 위해 cPAMIE를 통한 Internet Explorer의 Control을 많이 이용함

하지만, Internet Explorer의 Automation을 도와주는 cPAMIE는 다음 문제를 가지고 있다.

- 하위 호환성 문제 (cPAMIE for Python 2.4와 2.6의 문법 및 동작이 다름)
- COM(Component Object Model)을 통해 Internet Explorer과 통신하기 때문에 Windows 환경에 종속적
- 고급적인 Browser Control을 위해서는 COM에서 사용하는 함수를 알아야 함

이를 해결하기 위해 다양한 Platform에서 동작하는 WebBrowser Control (Automation) Tool인 Selenium을 이용

<Firefox 3.0.x 설치>

 Firefox 공식페이지

<Selenium-Core XPCom 및 Selenium-Core Server의 설치>

 Selenium-CoreXPI : (Firefox Module이므로 Firefox에서 설치) 
 Selenium-RC : 해당 파일을 다운 받아 selenium-server-1.0-beta-2 폴더만을 압축을 풀어 특정 폴더에 복사

<Selenium-Core Server의 실행>

 Windows나 리눅스/Mac의 Terminal을 열어 selenium-server의 압축을 푼 폴더로 이동하여 해당 명령을 실행함으로써 Server를 가동한다.

Prompt> java -jar selenium-server.jar -interactive

<Python-SeleniumRC Module의 설치>

- easy_install을 통해 SeleniumRC Client-Driver Python Module를 설치한다.

Prompt> easy_install selenium


<Script Test 예제 (Google 검색)>

- 다음 스크립트 파일을 Python에서 Test 해보도록 한다.

import selenium
# Selenium Connection 인스턴스 생성
a = selenium.selenium("localhost", 4444, "*firefox", "http://www.google.com")

# 해당 인스턴스 정보에 따라 Firefox에 창을 생성
a.start()

# http://www.google.com을 기준으로 /의 위치의 문서 열기 -> http://www.google.com/
a.open("/")

# q라는 form input 개체안에 SearchKeyword라는 단어를 입력한다
a.type("q", "SearchKeyword")

# BtnG 이름을 가진 버튼 클릭 (Google의 폼 전송 버튼이 BtnG)
a.click("btnG")

# 검색결과창의 HTML 소스를 긁어온다.
source = a.get_html_source()

# 창 닫기
a.close()

# 인스턴스 해제 및 Firefox의 종료
a.stop()
Posted by WebPeace

사이드바 열기