1.파이썬 설치
32비트용 : http://python.org/ftp/python/2.7.6/python-2.7.6.msi
64비트용 : http://python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi
1.1 설치 프로그램을 완료
1.2 경로에 파이썬 추가
win+r cmd 실행
setx PATH "C:\Python27;C:\Python27\Scripts;C:\Python27\Lib\site-packages"
setx 가 안먹는다. 수동으로 path 에 추가 할려고 환경변수 열었더니 잡혀있음.
cmd 창 새로 열고 python 입력 하니 잘 동작.cmd 창을 재시작 해야 하는 거였음.
1.3 pip 설치
1.4 test.py 작성 ( 피터윤님 코드 : https://medium.com/@peteryun/python-selenium%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%81%AC%EB%A1%A4%EB%9F%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0-b055cefd1195)
1.5 실행
> python test.py
D:\testautomation>python test.py
File "test.py", line 9
SyntaxError: Non-ASCII character '\xb7' in file test.py on line 9, but no encodi
ng declared; see http://www.python.org/peps/pep-0263.html for details
한글을 인식 못해서 나는 에러
맨위쪽에 다음 라인 추가
#-*- coding: utf-8 -*-
1.6 다시 실행
> python test.py
D:\testautomation>python test.py
Traceback (most recent call last):
File "test.py", line 3, in <module>
from selenium import webdriver
ImportError: No module named selenium
모듈 없다고 에러남. 모듈 설치 어케 하는 거임? ( https://wikidocs.net/5763 )
> pip install selenium
1.7 또 다시 실행
> python test.py
> pip install selenium xlrd xlutils
1.8 다시 실행
D:\testautomation>python test.py
Traceback (most recent call last):
File "test.py", line 11, in <module>
driver = webdriver.Chrome(executable_path="D:/testautomation/chromedriver.ex
e")
File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", l
ine 62, in __init__
self.service.start()
File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", lin
e 81, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' execu
table needs to be in PATH. Please see https://sites.google.com/a/chromium.org/ch
romedriver/home
훔 크롬웹드라이버도 패스 추가 해야 됨 . 그냥 파이썬 설치 폴더에 복사 해버리자. ㅋㅋ
2. 자바로 작성 하기
https://examples.javacodegeeks.com/core-java/selenium-chromedriver-tutorial/
maven 프로젝트로 되어 있음
2.1 스크린샷 하기
https://github.com/assertthat/selenium-shutterbug
위 두 소스 묶어서 배포 할것
Shutterbug.shootPage(driver, ScrollStrategy.BOTH_DIRECTIONS).save("C:\\testing\\screenshots\\");
3. 테스트 케이스 작성
4. 테스트
32비트용 : http://python.org/ftp/python/2.7.6/python-2.7.6.msi
64비트용 : http://python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi
1.1 설치 프로그램을 완료
1.2 경로에 파이썬 추가
win+r cmd 실행
setx PATH "C:\Python27;C:\Python27\Scripts;C:\Python27\Lib\site-packages"
setx 가 안먹는다. 수동으로 path 에 추가 할려고 환경변수 열었더니 잡혀있음.
cmd 창 새로 열고 python 입력 하니 잘 동작.cmd 창을 재시작 해야 하는 거였음.
1.3 pip 설치
- C:\Python27 에 다운로드 https://bootstrap.pypa.io/get-pip.py
- cmd 에서
1.4 test.py 작성 ( 피터윤님 코드 : https://medium.com/@peteryun/python-selenium%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%81%AC%EB%A1%A4%EB%9F%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0-b055cefd1195)
import time | |
from selenium import webdriver | |
import xlrd | |
from xlutils.copy import copy | |
from selenium.common.exceptions import NoSuchElementException,StaleElementReferenceException | |
import os | |
# driver로 wiki 접속 | |
driver = webdriver.Chrome(executable_path="C:/Users\yunhwan\workspace\crazy\chromedriver.exe") | |
for i in range(1,101): | |
driver.get("https://google.com") | |
# 엑셀 파일 열기 | |
wb = xlrd.open_workbook('test.xls') | |
sheet = wb.sheet_by_index(0) | |
copy_wb = copy(wb) | |
copy_sheet = copy_wb.get_sheet(0) | |
# 검색 키워드 셀에서 가져오기 | |
song = sheet.cell(i, 1).value | |
artist = sheet.cell(i, 2).value | |
keyword = str(song) + ' ' + str(artist) #숫자인 경우가 있어서 str() | |
#구글 검색 | |
elem = driver.find_element_by_id('lst-ib') | |
#공통 | |
elem.send_keys(keyword) | |
elem.submit() | |
##### 구글 검색 결과 페이지 ##### | |
try: | |
box = driver.find_element_by_xpath("//div[@id='rso']/div[2]/div") | |
list = box.find_elements_by_tag_name('h3') | |
for item in list : | |
#print(item.text) | |
if( 'Wikipedia' in item.text ): | |
p = item.find_element_by_tag_name('a') | |
p.click() | |
break | |
except NoSuchElementException: | |
box = driver.find_element_by_xpath("//div[@id='rso']/div/div") | |
list = box.find_elements_by_tag_name('h3') | |
for item in list: | |
# print(item.text) | |
if ('Wikipedia' in item.text): | |
p = item.find_element_by_tag_name('a') | |
p.click() | |
break | |
##### 위키 곡정보 페이지 ##### | |
# writer,producer | |
print("//////////////////////////// " + str(i) + "행을 크롤링중입니다.") | |
print("//////////////////////////// " + "노래명, 가수 : " + keyword) | |
try: | |
table = driver.find_element_by_tag_name('table') | |
tbody = table.find_element_by_tag_name("tbody") | |
trs = tbody.find_elements_by_tag_name("tr") | |
except NoSuchElementException: | |
print(" [예외 발생] 표 없음 ") | |
continue | |
for tr in trs: | |
if "Writer(s)" in tr.text: | |
print(tr.text) | |
a = "" | |
if tr.find_elements_by_tag_name("li"): | |
lis = tr.find_elements_by_tag_name("li") | |
for li in lis: | |
a = a + "," + li.text | |
else: | |
o = tr.find_elements_by_tag_name("td") | |
a = a + "," + o[0].text | |
a = a[1:] | |
copy_sheet.write(i, 3, a) | |
if "Producer" in tr.text: | |
print(tr.text) | |
a = "" | |
if tr.find_elements_by_tag_name("li"): | |
lis = tr.find_elements_by_tag_name("li") | |
for li in lis: | |
a = a + "," + li.text | |
else: | |
o = tr.find_elements_by_tag_name("td") | |
a = a + "," + o[0].text | |
a = a[1:] | |
copy_sheet.write(i, 4, a) | |
#저장 | |
copy_wb.save('test.xls') |
1.5 실행
> python test.py
D:\testautomation>python test.py
File "test.py", line 9
SyntaxError: Non-ASCII character '\xb7' in file test.py on line 9, but no encodi
ng declared; see http://www.python.org/peps/pep-0263.html for details
한글을 인식 못해서 나는 에러
맨위쪽에 다음 라인 추가
#-*- coding: utf-8 -*-
1.6 다시 실행
> python test.py
D:\testautomation>python test.py
Traceback (most recent call last):
File "test.py", line 3, in <module>
from selenium import webdriver
ImportError: No module named selenium
모듈 없다고 에러남. 모듈 설치 어케 하는 거임? ( https://wikidocs.net/5763 )
> pip install selenium
1.7 또 다시 실행
> python test.py
D:\testautomation>python test.py
Traceback (most recent call last):
File "test.py", line 4, in <module>
import xlrd
ImportError: No module named xlrd
우씨 모듈들 다 설치 ... 해야 되넹
1.8 다시 실행
D:\testautomation>python test.py
Traceback (most recent call last):
File "test.py", line 11, in <module>
driver = webdriver.Chrome(executable_path="D:/testautomation/chromedriver.ex
e")
File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", l
ine 62, in __init__
self.service.start()
File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", lin
e 81, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' execu
table needs to be in PATH. Please see https://sites.google.com/a/chromium.org/ch
romedriver/home
훔 크롬웹드라이버도 패스 추가 해야 됨 . 그냥 파이썬 설치 폴더에 복사 해버리자. ㅋㅋ
2. 자바로 작성 하기
https://examples.javacodegeeks.com/core-java/selenium-chromedriver-tutorial/
maven 프로젝트로 되어 있음
이클립스 메이븐 Maven dependency lib export 추출 방법
프로젝트 - 우클릭 - Run As -Maven Build...
Goals 에 dependency:copy-dependencies 추가
Run 실행
project- target - dependency folder 에 라이브러리 파일 떨어짐
2.1 스크린샷 하기
https://github.com/assertthat/selenium-shutterbug
위 두 소스 묶어서 배포 할것
Shutterbug.shootPage(driver, ScrollStrategy.BOTH_DIRECTIONS).save("C:\\testing\\screenshots\\");
3. 테스트 케이스 작성
4. 테스트
댓글
댓글 쓰기