콘텐츠로 이동

ElectronApplication

Source URL: https://playwright.dev/docs/api/class-electronapplication

Electron 애플리케이션 표현입니다. electron.launch()을 사용해 애플리케이션 인스턴스를 얻을 수 있습니다. 이 인스턴스를 통해 Electron의 메인 프로세스를 제어하고 Electron 창도 다룰 수 있습니다:

const { _electron: electron } = require('playwright');
(async () => {
// Launch Electron app.
const electronApp = await electron.launch({ args: ['main.js'] });
// Evaluation expression in the Electron context.
const appPath = await electronApp.evaluate(async ({ app }) => {
// This runs in the main Electron process, parameter here is always
// the result of the require('electron') in the main app script.
return app.getAppPath();
});
console.log(appPath);
// Get the first window that the app opens, wait if necessary.
const window = await electronApp.firstWindow();
// Print the title.
console.log(await window.title());
// Capture a screenshot.
await window.screenshot({ path: 'intro.png' });
// Direct Electron console to Node terminal.
window.on('console', console.log);
// Click button.
await window.click('text=Click me');
// Exit app.
await electronApp.close();
})();

추가된 버전: v1.11 electronApplication.browserWindow

주어진 Playwright 페이지에 대응하는 BrowserWindow 객체를 반환합니다.

사용법

await electronApplication.browserWindow(page);

인수

창을 조회할 페이지입니다.

반환값


추가된 버전: v1.9 electronApplication.close

Electron 애플리케이션을 닫습니다.

사용법

await electronApplication.close();

반환값


추가된 버전: v1.9 electronApplication.context

이 메서드는 컨텍스트 전역 라우팅 설정 등에 사용할 수 있는 브라우저 컨텍스트를 반환합니다.

사용법

electronApplication.context();

반환값


추가된 버전: v1.9 electronApplication.evaluate

pageFunction의 반환값을 반환합니다.

electronApplication.evaluate()에 전달된 함수가 Promise를 반환하면, electronApplication.evaluate()는 해당 promise가 resolve될 때까지 기다린 뒤 그 값을 반환합니다.

electronApplication.evaluate()에 전달된 함수가 Serializable이 아닌 값을 반환하면, electronApplication.evaluate()undefined를 반환합니다. Playwright는 또한 JSON으로 직렬화할 수 없는 일부 추가 값도 전송할 수 있습니다: -0, NaN, Infinity, -Infinity.

사용법

await electronApplication.evaluate(pageFunction);
await electronApplication.evaluate(pageFunction, arg);

인수

Electron 메인 프로세스에서 평가할 함수입니다.

pageFunction에 전달할 선택적 인수입니다.

반환값


추가된 버전: v1.9 electronApplication.evaluateHandle

pageFunction의 반환값을 JSHandle로 반환합니다.

electronApplication.evaluate()electronApplication.evaluateHandle()의 유일한 차이는 electronApplication.evaluateHandle()JSHandle을 반환한다는 점입니다.

electronApplication.evaluateHandle()에 전달된 함수가 Promise를 반환하면, electronApplication.evaluateHandle()은 해당 promise가 resolve될 때까지 기다린 뒤 그 값을 반환합니다.

사용법

await electronApplication.evaluateHandle(pageFunction);
await electronApplication.evaluateHandle(pageFunction, arg);

인수

Electron 메인 프로세스에서 평가할 함수입니다.

pageFunction에 전달할 선택적 인수입니다.

반환값


추가된 버전: v1.9 electronApplication.firstWindow

첫 번째 애플리케이션 창이 열릴 때까지 기다리는 편의 메서드입니다.

사용법

const electronApp = await electron.launch({
args: ['main.js']
});
const window = await electronApp.firstWindow();
// ...

인수

  • options Object (선택 사항)
    • timeout number (선택 사항) 추가된 버전: v1.33#

기다릴 최대 시간(밀리초)입니다. 기본값은 30000(30초)입니다. 타임아웃을 비활성화하려면 0을 전달하세요. 기본값은 browserContext.setDefaultTimeout()을 사용해 변경할 수 있습니다.

반환값


추가된 버전: v1.21 electronApplication.process

이 Electron Application의 메인 프로세스를 반환합니다.

사용법

electronApplication.process();

반환값


추가된 버전: v1.9 electronApplication.waitForEvent

이벤트가 발생할 때까지 기다리고 그 값을 predicate 함수에 전달합니다. predicate가 truthy 값을 반환하면 완료됩니다. 이벤트가 발생하기 전에 애플리케이션이 닫히면 오류를 throw합니다. 이벤트 데이터 값을 반환합니다.

사용법

const windowPromise = electronApp.waitForEvent('window');
await mainWindow.click('button');
const window = await windowPromise;

인수

이벤트 이름으로, 일반적으로 *.on(event)에 전달하는 것과 동일합니다.

이벤트 데이터를 받아, 대기가 완료되어야 할 때 truthy 값으로 resolve됩니다.

* `timeout` [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type "Number") _(선택 사항)_

기다릴 최대 시간(밀리초)입니다. 기본값은 30000(30초)입니다. 타임아웃을 비활성화하려면 0을 전달하세요. 기본값은 browserContext.setDefaultTimeout()을 사용해 변경할 수 있습니다.

이벤트를 받는 predicate 또는 옵션 객체 중 하나입니다. 선택 사항입니다.

반환값


추가된 버전: v1.9 electronApplication.windows

열려 있는 모든 창을 반환하는 편의 메서드입니다.

사용법

electronApplication.windows();

반환값


추가된 버전: v1.9 electronApplication.on(‘close’)

이 이벤트는 애플리케이션 프로세스가 종료되었을 때 발생합니다.

사용법

electronApplication.on('close', data => {});

추가된 버전: v1.42 electronApplication.on(‘console’)

Electron 메인 프로세스 내 JavaScript가 console.log 또는 console.dir 같은 console API 메서드 중 하나를 호출하면 발생합니다.

console.log에 전달된 인수는 ConsoleMessage 이벤트 핸들러 인수에서 사용할 수 있습니다.

사용법

electronApp.on('console', async msg => {
const values = [];
for (const arg of msg.args())
values.push(await arg.jsonValue());
console.log(...values);
});
await electronApp.evaluate(() => console.log('hello', 5, { foo: 'bar' }));

이벤트 데이터


추가된 버전: v1.9 electronApplication.on(‘window’)

이 이벤트는 Electron에서 생성되고 로드된 모든 창마다 발생합니다. 여기에는 Playwright 자동화에 사용할 수 있는 Page가 포함됩니다.

사용법

electronApplication.on('window', data => {});

이벤트 데이터