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

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:port).

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

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

      HTTP 認証のクレデンシャル。オリジンが指定されていない場合、ユーザー名とパスワードは、認証されていないレスポンスに対してすべてのサーバーに送信されます。

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

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

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

      ユーザーロケール (例: en-GBde-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 に保存されるリクエストをフィルタリングする glob または正規表現パターン。baseURL がコンテキストオプションを介して提供され、渡された URL がパスの場合、new URL() コンストラクタを介してマージされます。デフォルトはなし。

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

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

      • dir string

        ビデオを格納するディレクトリへのパス。

      • size Object (オプション)

        • width number

          ビデオフレームの幅。

        • height number

          ビデオフレームの高さ。

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

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

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

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

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

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

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

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

戻り値