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

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 (optional)
    • acceptDownloads boolean (オプション)追加日: v1.12#

      すべての添付ファイルを自動的にダウンロードするかどうか。デフォルトはtrueで、すべてのダウンロードが受け入れられます。

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

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

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

      ページのコンテンツセキュリティポリシーをバイパスするかどうかを切り替えます。デフォルトは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 (optional)

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

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

      • username string

      • password string

      • origin string (optional)

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

      • send "unauthorized" | "always" (optional)

        このオプションは、対応するAPIRequestContextから送信されたリクエストにのみ適用され、ブラウザから送信されたリクエストには影響しません。'always' - 基本認証資格情報を含むAuthorizationヘッダーは、各APIリクエストとともに送信されます。'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 (optional)

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

      • content "omit" | "embed" | "attach" (optional)

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

      • path string

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

      • mode "full" | "minimal" (optional)

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

      • urlFilter string | RegExp (optional)

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

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

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

      • dir string

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

      • size Object (optional)

        • width number

          ビデオフレームの幅。

        • height number

          ビデオフレームの高さ。

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

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

    • timeout number (optional)追加されたバージョン: v1.15#

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

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

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

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

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

戻り値