メインコンテンツへスキップ

Electron

PlaywrightはElectronオートメーションを**実験的**にサポートしています。electron名前空間には、以下を介してアクセスできます。

const { _electron } = require('playwright');

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();
})();

サポートされているElectronのバージョン:

  • v12.2.0以降
  • v13.4.0以降
  • v14以降

既知の問題

Electronを起動できず、起動中にタイムアウトになる場合は、以下を試してください。


メソッド

launch

追加バージョン: v1.9 electron.launch

`executablePath` で指定されたElectronアプリケーションを起動します。

使用法

await electron.launch();
await electron.launch(options);

引数

  • `options` Object (オプション)
    • `acceptDownloads` boolean (オプション)追加バージョン: v1.12#

      すべての添付ファイルを自動的にダウンロードするかどうか。デフォルトは、すべてのダウンロードが許可される`true`です。

    • `args` Array<string> (オプション)#

      アプリケーション起動時に渡す追加の引数。通常、ここでメインスクリプト名を渡します。

    • `bypassCSP` boolean (オプション)追加バージョン: v1.12#

      ページのContent-Security-Policyをバイパスするかどうかを切り替えます。デフォルトは`false`です。

    • `colorScheme` null | "light" | "dark" | "no-preference" (オプション)追加バージョン: v1.12#

      prefers-colors-schemeメディア機能をエミュレートします。サポートされている値は`'light'`と`'dark'`です。詳細はpage.emulateMedia()を参照してください。`null`を渡すと、エミュレーションはシステムデフォルトにリセットされます。デフォルトは`'light'`です。

    • `cwd` string (オプション)#

      アプリケーションを起動する現在の作業ディレクトリ。

    • `env` Object<string, string> (オプション)#

      Electronからアクセスできる環境変数を指定します。デフォルトは`process.env`です。

    • `executablePath` string (オプション)#

      指定されたElectronアプリケーションを起動します。指定されていない場合、このパッケージにインストールされているデフォルトのElectron実行可能ファイル(`node_modules/.bin/electron`)を起動します。

    • `extraHTTPHeaders` Object<string, string> (オプション)追加バージョン: v1.12#

      すべてのリクエストで送信される追加のHTTPヘッダーを含むオブジェクト。デフォルトはなしです。

    • `geolocation` Object (オプション)追加バージョン: v1.12#

      • `latitude` number

        -90から90の間の緯度。

      • `longitude` number

        -180から180の間の経度。

      • `accuracy` number (オプション)

        非負の精度値。デフォルトは`0`です。

    • `httpCredentials` Object (オプション)追加バージョン: v1.12#

      • `username` string

      • `password` string

      • `origin` string (オプション)

        特定のオリジン (scheme://host でHTTP資格情報の送信を制限します。:port).

      • `send` "unauthorized" | "always" (オプション)

        このオプションは、対応するAPIRequestContextから送信されたリクエストにのみ適用され、ブラウザから送信されたリクエストには影響しません。`'always'` - 各APIリクエストに基本認証資格情報を含む`Authorization`ヘッダーが送信されます。`'unauthorized'` - 資格情報は、`WWW-Authenticate`ヘッダーを含む401 (Unauthorized) 応答が受信された場合にのみ送信されます。デフォルトは`'unauthorized'`です。

      HTTP認証の資格情報。オリジンが指定されていない場合、ユーザー名とパスワードは、認証されていない応答を受信した任意のサーバーに送信されます。

    • `ignoreHTTPSErrors` boolean (オプション)追加バージョン: v1.12#

      ネットワークリクエスト送信時にHTTPSエラーを無視するかどうか。デフォルトは`false`です。

    • `locale` string (オプション)追加バージョン: v1.12#

      ユーザーロケールを指定します。例: `en-GB`、`de-DE`など。ロケールは`navigator.language`の値、`Accept-Language`リクエストヘッダーの値、および数値と日付の書式設定ルールに影響します。デフォルトはシステムのデフォルトロケールです。エミュレーションの詳細については、エミュレーションガイドを参照してください。

    • `offline` boolean (オプション)追加バージョン: v1.12#

      ネットワークがオフラインであることをエミュレートするかどうか。デフォルトは`false`です。ネットワークエミュレーションの詳細はこちら。

    • `recordHar` Object (オプション)追加バージョン: v1.12#

      • `omitContent` boolean (オプション)

        HARからリクエストコンテンツを省略するかどうかを制御するオプション設定。デフォルトは`false`です。非推奨です。代わりに`content`ポリシーを使用してください。

      • `content` "omit" | "embed" | "attach" (オプション)

        リソースコンテンツの管理を制御するオプション設定。`omit`が指定されている場合、コンテンツは永続化されません。`attach`が指定されている場合、リソースは個別のファイルまたはZIPアーカイブのエントリとして永続化されます。`embed`が指定されている場合、HAR仕様に従ってコンテンツはHARファイル内にインラインで保存されます。`.zip`出力ファイルの場合は`attach`、その他のすべてのファイル拡張子の場合は`embed`がデフォルトです。

      • `path` string

        HARファイルを書き込むファイルシステム上のパス。ファイル名が`.zip`で終わる場合、デフォルトで`content: 'attach'`が使用されます。

      • `mode` "full" | "minimal" (オプション)

        `minimal`に設定すると、HARからのルーティングに必要な情報のみが記録されます。これにより、HARからリプレイするときに使用されないサイズ、タイミング、ページ、Cookie、セキュリティ、およびその他の種類のHAR情報は省略されます。デフォルトは`full`です。

      • `urlFilter` string | RegExp (オプション)

        HARに保存されるリクエストをフィルタリングするためのグロブまたは正規表現パターン。コンテキストオプションでbaseURLが提供され、渡されたURLがパスである場合、new URL()コンストラクタを介してマージされます。デフォルトはなしです。

      `recordHar.path`ファイルにすべてのページのHAR記録を有効にします。指定しない場合、HARは記録されません。HARを保存するには、browserContext.close()を待機するようにしてください。

    • `recordVideo` Object (オプション)追加バージョン: v1.12#

      • `dir` string

        動画を保存するディレクトリへのパス。

      • `size` Object (オプション)

        • `width` number

          ビデオフレームの幅。

        • `height` number

          ビデオフレームの高さ。

        記録される動画のオプションの寸法。指定しない場合、サイズは`viewport`と同じになり、800x800に収まるように縮小されます。`viewport`が明示的に構成されていない場合、動画のサイズはデフォルトで800x450になります。各ページの実際の画像は、指定されたサイズに収まるように必要に応じて縮小されます。

      `recordVideo.dir`ディレクトリにすべてのページの動画記録を有効にします。指定しない場合、動画は記録されません。動画を保存するには、browserContext.close()を待機するようにしてください。

    • `timeout` number (オプション)追加バージョン: v1.15#

      アプリケーションの起動を待機する最大時間(ミリ秒単位)。デフォルトは`30000` (30秒) です。`0`を渡すとタイムアウトが無効になります。

    • `timezoneId` string (オプション)追加バージョン: v1.12#

      コンテキストのタイムゾーンを変更します。サポートされているタイムゾーンIDのリストについては、ICUのmetaZones.txtを参照してください。デフォルトはシステムのタイムゾーンです。

    • `tracesDir` string (オプション)追加バージョン: v1.36#

      指定した場合、トレースはこのディレクトリに保存されます。

戻り値