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();
})();
メソッド
browserWindow
バージョン v1.11 で追加指定されたPlaywrightページに対応するBrowserWindowオブジェクトを返します。
使用例
await electronApplication.browserWindow(page);
引数
戻り値
close
バージョン v1.9 で追加Electronアプリケーションを閉じます。
使用例
await electronApplication.close();
戻り値
context
バージョン v1.9 で追加このメソッドは、コンテキスト全体でのルーティング設定などに使用できるブラウザコンテキストを返します。
使用例
electronApplication.context();
戻り値
evaluate
バージョン v1.9 で追加pageFunctionの戻り値を返します。
electronApplication.evaluate()に渡された関数がPromiseを返す場合、electronApplication.evaluate()はPromiseが解決されるのを待ってその値を返します。
electronApplication.evaluate()に渡された関数がシリアライズ可能でない値を返す場合、electronApplication.evaluate()はundefined
を返します。Playwrightは、JSON
でシリアライズ可能でない追加の値(-0
、NaN
、Infinity
、-Infinity
)の転送もサポートしています。
使用例
await electronApplication.evaluate(pageFunction);
await electronApplication.evaluate(pageFunction, arg);
引数
-
pageFunction
function | Electron#メインのElectronプロセスで評価される関数。
-
arg
EvaluationArgument (オプション)#pageFunctionに渡すオプションの引数。
戻り値
evaluateHandle
バージョン v1.9 で追加pageFunctionの戻り値をJSHandleとして返します。
electronApplication.evaluate()とelectronApplication.evaluateHandle()の唯一の違いは、electronApplication.evaluateHandle()がJSHandleを返すことです。
electronApplication.evaluateHandle()に渡された関数がPromiseを返す場合、electronApplication.evaluateHandle()はPromiseが解決されるのを待ってその値を返します。
使用例
await electronApplication.evaluateHandle(pageFunction);
await electronApplication.evaluateHandle(pageFunction, arg);
引数
-
pageFunction
function | Electron#メインのElectronプロセスで評価される関数。
-
arg
EvaluationArgument (オプション)#pageFunctionに渡すオプションの引数。
戻り値
firstWindow
バージョン v1.9 で追加最初のアプリケーションウィンドウが開かれるのを待つ便利なメソッド。
使用例
const electronApp = await electron.launch({
args: ['main.js']
});
const window = await electronApp.firstWindow();
// ...
引数
options
Object (オプション)-
timeout
number (オプション)バージョン v1.33 で追加#最大待機時間(ミリ秒単位)。デフォルトは
30000
(30秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browserContext.setDefaultTimeout()を使用して変更できます。
-
戻り値
process
バージョン v1.21 で追加このElectronアプリケーションのメインプロセスを返します。
使用例
electronApplication.process();
戻り値
waitForEvent
バージョン v1.9 で追加イベントが発生するのを待って、その値を述語関数に渡します。述語が真の値を返すと戻ります。イベントが発生する前にアプリケーションが閉じられた場合、エラーをスローします。イベントデータ値を返します。
使用例
const windowPromise = electronApp.waitForEvent('window');
await mainWindow.click('button');
const window = await windowPromise;
引数
-
イベント名。通常、
*.on(event)
に渡されるものと同じです。 -
optionsOrPredicate
function | Object (オプション)#-
predicate
functionイベントデータを受け取り、待機が解決されるべきときに真の値を返します。
-
timeout
number (オプション)最大待機時間(ミリ秒単位)。デフォルトは
30000
(30秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browserContext.setDefaultTimeout()を使用して変更できます。
イベントを受け取る述語またはオプションオブジェクトのいずれか。オプション。
-
戻り値
windows
バージョン v1.9 で追加開いているすべてのウィンドウを返す便利なメソッド。
使用例
electronApplication.windows();
戻り値
イベント
on('close')
バージョン v1.9 で追加このイベントは、アプリケーションプロセスが終了したときに発行されます。
使用例
electronApplication.on('close', data => {});
on('console')
バージョン v1.42 で追加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' }));
イベントデータ
on('window')
バージョン v1.9 で追加このイベントは、Electronで作成およびロードされるすべてのウィンドウに対して発行されます。Playwrightオートメーションに使用できるPageが含まれています。
使用例
electronApplication.on('window', data => {});
イベントデータ