Родитель
46c6233b62
Коммит
b6958e5221
|
@ -71,8 +71,9 @@ API 레퍼런스가 있습니다. Electron을 빌드 하는 방법과 프로젝
|
|||
- Atom 포럼의 [`electron`](http://discuss.atom.io/c/electron) 카테고리
|
||||
- Freenode 채팅의 `#atom-shell` 채널
|
||||
- Slack의 [`Atom`](http://atom-slack.herokuapp.com/) 채널
|
||||
- [`electron-br`](https://electron-br.slack.com) *(브라질 포르투갈어)* 커뮤니티
|
||||
- [`electron-kr`](http://www.meetup.com/electron-kr/) *(한국어)* 커뮤니티
|
||||
- [`electron-br`](https://electron-br.slack.com) *(브라질)* 커뮤니티
|
||||
- [`electron-kr`](http://www.meetup.com/electron-kr/) *(한국)* 커뮤니티
|
||||
- [`electron-jp`](https://electron-jp-slackin.herokuapp.com/) *(일본)* 커뮤니티
|
||||
|
||||
[awesome-electron](https://github.com/sindresorhus/awesome-electron) 프로젝트에
|
||||
커뮤니티가 운영중인 유용한 예제 어플리케이션과 도구, 리소스가 있으니 한번 참고해 보시기
|
||||
|
|
|
@ -30,6 +30,7 @@ Electron에 대해 자주 묻는 질문이 있습니다. 이슈를 생성하기
|
|||
* [개발자 도구 확장 기능](tutorial/devtools-extension.md)
|
||||
* [Pepper 플래시 플러그인 사용하기](tutorial/using-pepper-flash-plugin.md)
|
||||
* [Widevine CDM 플러그인 사용하기](tutorial/using-widevine-cdm-plugin.md)
|
||||
* [Headless CI 시스템에서 테스팅하기 (Travis, Jenkins)](tutorial/testing-on-headless-ci.md)
|
||||
|
||||
## 튜토리얼
|
||||
|
||||
|
|
|
@ -421,10 +421,12 @@ var currentURL = win.webContents.getURL();
|
|||
|
||||
CSS 코드를 현재 웹 페이지에 삽입합니다.
|
||||
|
||||
### `webContents.executeJavaScript(code[, userGesture])`
|
||||
### `webContents.executeJavaScript(code[, userGesture, callback])`
|
||||
|
||||
* `code` String
|
||||
* `userGesture` Boolean (optional)
|
||||
* `callback` Function (optional) - 스크립트의 실행이 완료되면 호출됩니다.
|
||||
* `result`
|
||||
|
||||
페이지에서 자바스크립트 코드를 실행합니다.
|
||||
|
||||
|
@ -646,14 +648,14 @@ mainWindow.webContents.on('devtools-opened', function() {
|
|||
|
||||
개발자 도구가 열려있는지 여부를 반환합니다.
|
||||
|
||||
### `webContents.toggleDevTools()`
|
||||
|
||||
개발자 도구를 토글합니다.
|
||||
|
||||
### `webContents.isDevToolsFocused()`
|
||||
|
||||
개발자 도구에 포커스 되어있는지 여부를 반환합니다.
|
||||
|
||||
### `webContents.toggleDevTools()`
|
||||
|
||||
개발자 도구를 토글합니다.
|
||||
|
||||
### `webContents.inspectElement(x, y)`
|
||||
|
||||
* `x` Integer
|
||||
|
@ -758,9 +760,10 @@ Input `event`를 웹 페이지로 전송합니다.
|
|||
|
||||
* `keyCode` Char or String (**required**) - 키보드 이벤트로 보내지는 문자. 단일
|
||||
UTF-8 문자를 사용할 수 있고 이벤트를 발생시키는 다음 키 중 하나를 포함할 수 있습니다:
|
||||
`enter`, `backspace`, `delete`, `tab`, `escape`, `control`, `alt`, `shift`,
|
||||
`end`, `home`, `insert`, `left`, `up`, `right`, `down`, `pageUp`, `pageDown`,
|
||||
`printScreen`
|
||||
`enter`, `backspace`, `delete`, `tab`, `escape`, `control`, `alt`, `altgr`
|
||||
(Windows 전용), `shift`, `end`, `home`, `insert`, `left`, `up`, `right`,
|
||||
`down`, `pageUp`, `pageDown`, `printScreen`, `meta`, `cmd` (OSX 전용),
|
||||
`command` (OSX 전용), `option` (OSX 전용)
|
||||
|
||||
마우스 이벤트들에 대해서는 `event` 객체는 다음 속성들을 사용할 수 있습니다:
|
||||
|
||||
|
@ -832,6 +835,10 @@ win.webContents.on('did-finish-load', function() {
|
|||
|
||||
이 webContents에서 사용하는 [session](session.md) 객체를 반환합니다.
|
||||
|
||||
### `webContents.hostWebContents`
|
||||
|
||||
현재 `WebContents`를 소유하는 `WebContents`를 반환합니다.
|
||||
|
||||
### `webContents.devToolsWebContents`
|
||||
|
||||
이 `WebContents`에 대한 개발자 도구의 `WebContents`를 가져옵니다.
|
||||
|
|
|
@ -272,12 +272,14 @@ Webview에 웹 페이지 `url`을 로드합니다. `url`은 `http://`, `file://`
|
|||
|
||||
페이지에 CSS를 삽입합니다.
|
||||
|
||||
### `<webview>.executeJavaScript(code[, userGesture])`
|
||||
### `<webview>.executeJavaScript(code[, userGesture, callback])`
|
||||
|
||||
* `code` String
|
||||
* `userGesture` Boolean
|
||||
* `callback` Function (optional) - 스크립트의 실행이 완료되면 호출됩니다.
|
||||
* `result`
|
||||
|
||||
페이지에서 자바스크립트 `code`를 실행합니다.
|
||||
페이지에서 자바스크립트 코드를 실행합니다.
|
||||
|
||||
만약 `userGesture`가 `true`로 설정되어 있으면 페이지에 유저 제스쳐 컨텍스트를 만듭니다.
|
||||
이 옵션을 활성화 시키면 `requestFullScreen`와 같은 HTML API에서 유저의 승인을
|
||||
|
@ -427,6 +429,10 @@ Webview 페이지를 PDF 형식으로 인쇄합니다.
|
|||
`event` 객체에 대해 자세히 알아보려면 [webContents.sendInputEvent](web-contents.md##webcontentssendinputeventevent)를
|
||||
참고하세요.
|
||||
|
||||
### `<webview>.getWebContents()`
|
||||
|
||||
이 `webview`에 해당하는 [WebContents](web-contents.md)를 반환합니다.
|
||||
|
||||
## DOM 이벤트
|
||||
|
||||
`webview` 태그는 다음과 같은 DOM 이벤트를 가지고 있습니다:
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
# Headless CI 시스템에서 테스팅하기 (Travis, Jenkins) (Travis CI, Jenkins)
|
||||
|
||||
Chromium을 기반으로 한 Electron은 작업을 위해 디스플레이 드라이버가 필요합니다.
|
||||
만약 Chromium이 디스플레이 드라이버를 찾기 못한다면, Electron은 그대로 실행에
|
||||
실패할 것입니다. 따라서 실행하는 방법에 관계없이 모든 테스트를 실행하지 못하게 됩니다.
|
||||
Electron 기반 어플리케이션을 Travis, Circle, Jenkins 또는 유사한 시스템에서 테스팅을
|
||||
진행하려면 약간의 설정이 필요합니다. 요점만 말하자면, 가상 디스플레이 드라이버가
|
||||
필요합니다.
|
||||
|
||||
## 가상 디스플레이 드라이버 설정
|
||||
|
||||
먼저, [Xvfb](https://en.wikipedia.org/wiki/Xvfb)를 설치합니다. 이것은 X11
|
||||
디스플레이 서버 프로토콜의 구현이며 모든 그래픽 작업을 스크린 출력없이 인-메모리에서
|
||||
수행하는 가상 프레임버퍼입니다. 정확히 우리가 필요로 하는 것입니다.
|
||||
|
||||
그리고, 가상 xvfb 스크린을 생성하고 DISPLAY라고 불리우는 환경 변수를 지정합니다.
|
||||
Electron의 Chromium은 자동적으로 `$DISPLAY` 변수를 찾습니다. 따라서 앱의 추가적인
|
||||
다른 설정이 필요하지 않습니다. 이러한 작업은 Paul Betts의
|
||||
[xfvb-maybe](https://github.com/paulcbetts/xvfb-maybe)를 통해 자동화 할 수
|
||||
있습니다: `xfvb-maybe`를 테스트 커맨드 앞에 추가하고 현재 시스템에서 요구하면
|
||||
이 작은 툴이 자동적으로 xfvb를 설정합니다. Windows와 Mac OS X에선 간단히 아무 작업도
|
||||
하지 않습니다.
|
||||
|
||||
```
|
||||
## Windows와 OS X에선, 그저 electron-mocha를 호출합니다
|
||||
## Linux에선, 현재 headless 환경에 있는 경우
|
||||
## xvfb-run electron-mocha ./test/*.js와 같습니다
|
||||
xvfb-maybe electron-mocha ./test/*.js
|
||||
```
|
||||
|
||||
### Travis CI
|
||||
|
||||
Travis에선, `.travis.yml`이 대충 다음과 같이 되어야 합니다:
|
||||
|
||||
```
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- xvfb
|
||||
|
||||
install:
|
||||
- export DISPLAY=':99.0'
|
||||
- Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
### Jenkins
|
||||
|
||||
Jenkins는 [Xfvb 플러그인이 존재합니다](https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin).
|
||||
|
||||
### Circle CI
|
||||
|
||||
Circle CI는 멋지게도 이미 xvfb와 `$DISPLY` 변수가 준비되어 있습니다. 따라서
|
||||
[추가적인 설정이 필요하지](https://circleci.com/docs/environment#browsers) 않습니다.
|
||||
|
||||
### AppVeyor
|
||||
|
||||
AppVeyor는 Windows에서 작동하기 때문에 Selenium, Chromium, Electron과 그 비슷한
|
||||
툴들을 복잡한 과정 없이 모두 지원합니다. - 설정이 필요하지 않습니다.
|
Загрузка…
Ссылка в новой задаче