사용자 도구

사이트 도구


project:ebsplayer

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
project:ebsplayer [2016/11/18 02:02] – 만듦 changwooproject:ebsplayer [2016/11/19 07:14] (현재) – [플래시 실행 관련] changwoo
줄 5: 줄 5:
  
 ===== 셀레니움 설치 ===== ===== 셀레니움 설치 =====
-셀레니움 홈페이지에서 [[http://docs.seleniumhq.org/download/|standalone server]]를 다운로드 받는다. 이것을 아래처럼 하면 실행할 수 있다.+<del>셀레니움 홈페이지에서 [[http://docs.seleniumhq.org/download/|standalone server]]를 다운로드 받는다. 이것을 아래처럼 하면 실행할 수 있다.</del> 
 +셀레니움 standalone server는 직접적인 관계가 없다. 실행시키지 않아도 상관 없다. 
 <code bash> <code bash>
 java -jar selenium-server-standalone-3.0.1.jar java -jar selenium-server-standalone-3.0.1.jar
-</code+</code>
  
 실행하기 전 크롬 드라이버와 크롬 웹브라우저를 설치하도록 한다. 구글 크롬을 써도 되지만 오픈소스 버전인 크로미움을 사용해도 무방하다. 단, 이 경우 크로미움의 실행 파일 이름을 '/usr/bin/google-chrome'으로 링크를 걸자((https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver)). 크롬 드라이버는 [[https://sites.google.com/a/chromium.org/chromedriver/downloads|여기]]서 받을 수 있다. 압축을 풀면 바이너리 파일이 있는데 시스템 패스를 잡아서 실행할 수 있도록 한다. 실행하기 전 크롬 드라이버와 크롬 웹브라우저를 설치하도록 한다. 구글 크롬을 써도 되지만 오픈소스 버전인 크로미움을 사용해도 무방하다. 단, 이 경우 크로미움의 실행 파일 이름을 '/usr/bin/google-chrome'으로 링크를 걸자((https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver)). 크롬 드라이버는 [[https://sites.google.com/a/chromium.org/chromedriver/downloads|여기]]서 받을 수 있다. 압축을 풀면 바이너리 파일이 있는데 시스템 패스를 잡아서 실행할 수 있도록 한다.
 +
 +''chromedriver --version''명령을 실행하여 headless 서버에서 문제없이 실행되는지 체크한다. 필요한 라이브러리가 부족할 수도 있다((http://stackoverflow.com/a/40585051)). 또한 크롬 드라이버는 레포지토리에서 받을 수 있으나, 이 경우 플래시 플러그인이 로딩되지 않아 전혀 필요없다.
 +
 +
  
  
 ===== 스크립트 실행 ===== ===== 스크립트 실행 =====
 프로토타입 스크립트를 생성하였다. 저장소는 [[ https://bitbucket.org/changwoo/ebsplayer|이곳]]이다. 프로토타입 스크립트를 생성하였다. 저장소는 [[ https://bitbucket.org/changwoo/ebsplayer|이곳]]이다.
 +
 +
 +===== 플래시 실행 관련 =====
 +우선은 브금저장소 같은 플래시를 사용하는 곳에서 플래시를 잠시 빌리도록 해 보자. 이를 테면,
 +
 +<code html>
 +<html>
 +  <body>
 +    <embed src="http://player.bgmstore.net/LerTb" type="application/x-shockwave-flash" width="100%" height="180"></embed>
 +  </body>
 +</html>
 +</code>
 +
 +브라우저에서 제대로 음성이 출력되는지 확인해보자. 적절한 음악 파일을 올려둔 다음, 이것을 웹브라우저로 접근해보자. xvfb로 만든 경우라도 기능이 동일하기 때문에 플래시나 음성이 제대로 출력되어야 한다.
 +
 +<del>크롬 브라우저는 pepperflashplugin-nonfree를 이용한다. 그리고 이것을 깐다 하더라도 플래시 플레이어가 당장 실행되지는 않는다.</del> flashplayer는 더 이상 크롬 브라우저에서 제공되지 않으므로 별도로 설치해야 한다 우분투의 경우 캐노니컬 파트너 저장소를 통해 다운로드 받을 수 있다.
 +
 +<code bash>
 +sudo vi /etc/apt/sources.list
 +# deb http://archive.canonical.com/ubuntu xenial partner 이 부분의 주석을 해제한다.
 +sudo apt update
 +sudo apt install adobe-flashplugin
 +</code>
 +
 +그리고 /etc/chromium-browser/default의 내용을 다음처럼 만든다.
 +
 +<code bash>
 +# Default settings for chromium-browser. This file is sourced by /bin/sh from
 +# /usr/bin/chromium-browser
 +
 +# Options to pass to chromium-browser
 +CHROMIUM_FLAGS="--disable-new-tab-first-run --enable-user-scripts"
 +
 +# part for pepperflashplugin-nonfree : begin
 +
 +flashso="/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so"
 +
 +if [ -f $flashso ]
 +then
 +        flashversion=`strings $flashso|grep ^LNX|sed -e "s/^LNX //"|sed -e "s/,/./g"`
 +        CHROMIUM_FLAGS="$CHROMIUM_FLAGS --ppapi-flash-path=$flashso --ppapi-flash-version=$flashversion"
 +fi
 +
 +# part for pepperflashplugin-nonfree : end
 +</code>
 +
 +그 다음 (아마 세션을 다시 시작하는 것이 좋을 것이다) 이제 간단하게 테스트를 해 보자.
 +
 +<code python>
 +from pyvirtualdisplay import Display
 +from selenium import webdriver
 +
 +# 가상 디스플레이 생성
 +display = Display(visible=0, size=(800, 600))
 +display.start()
 +
 +# 크롬 생성, 크롬 플러그인 상태를 확인
 +driver = webdriver.Chrome()
 +driver.get('chrome://plugins')
 +driver.save_screenshot('<path>')
 +
 +# 플래시 테스트 페이지에서 상태 확인
 +driver.get('<플래시테스트URL>')
 +driver.save_screenshot('<path>')
 +
 +driver.execute_script("window.scrollTo(0, document.body.scrollHeight/5);")
 +
 +# 정리
 +driver.quit()
 +display.stop()
 +</code>
 +
 +이렇게 하면 다음처럼 플러그인과 플래시의 실행 준비가 되어 있어야 한다.
 +
 +{{ :project:ebsplayer:flash.png?nolink |}}
 +
 +{{ :project:ebsplayer:plugins.png?nolink |}}
  
project/ebsplayer.1479434521.txt.gz · 마지막으로 수정됨: 2016/11/18 02:02 저자 changwoo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki