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 を起動できず、起動中にタイムアウトになる場合は、以下を試してください。
nodeCliInspect(FuseV1Options.EnableNodeCliInspectArguments) のヒューズがfalseに設定されていないことを確認してください。
メソッド
launch
追加バージョン: v1.9executablePath で指定された Electron アプリケーションを起動します。
使用法
await electron.launch();
await electron.launch(options);
引数
optionsObject (optional)-
acceptDownloadsboolean (オプション)追加日: v1.12#すべての添付ファイルを自動的にダウンロードするかどうか。デフォルトは
trueで、すべてのダウンロードが受け入れられます。 -
アプリケーションの起動時に渡す追加の引数です。通常、ここでメインスクリプト名を渡します。
-
bypassCSPboolean (オプション)追加日: v1.12#ページのコンテンツセキュリティポリシーをバイパスするかどうかを切り替えます。デフォルトは
falseです。 -
colorSchemenull | "light" | "dark" | "no-preference" (オプション)追加日: v1.12#prefers-colors-schemeメディア機能をエミュレートします。サポートされている値は
'light'と'dark'です。詳細についてはpage.emulateMedia()を参照してください。nullを渡すと、エミュレーションがシステムデフォルトにリセットされます。デフォルトは'light'です。 -
アプリケーションを起動する現在の作業ディレクトリ。
-
envObject<string, string> (オプション)#Electron に可視となる環境変数を指定します。デフォルトは
process.envです。 -
executablePathstring (オプション)#指定された Electron アプリケーションを起動します。指定しない場合、このパッケージにインストールされているデフォルトの Electron 実行可能ファイル (
node_modules/.bin/electronにある) を起動します。 -
extraHTTPHeadersObject<string, string> (オプション)追加日: v1.12#すべてのリクエストと一緒に送信される追加のHTTPヘッダーを含むオブジェクト。デフォルトはなし。
-
httpCredentialsObject (オプション)追加日: v1.12#-
usernamestring -
passwordstring -
originstring (optional)特定のオリジン(scheme://host:port)でのhttp資格情報の送信を制限します:ポート).
-
send"unauthorized" | "always" (optional)このオプションは、対応するAPIRequestContextから送信されたリクエストにのみ適用され、ブラウザから送信されたリクエストには影響しません。
'always'- 基本認証資格情報を含むAuthorizationヘッダーは、各APIリクエストとともに送信されます。'unauthorized- 資格情報は、WWW-Authenticateヘッダーを持つ401(Unauthorized)応答が受信された場合にのみ送信されます。デフォルトは'unauthorized'です。
HTTP認証用の資格情報。オリジンが指定されていない場合、ユーザー名とパスワードは、不正な応答があった場合にすべてのサーバーに送信されます。
-
-
ignoreHTTPSErrorsboolean (オプション)追加日: v1.12#ネットワークリクエストを送信する際にHTTPSエラーを無視するかどうか。デフォルトは
falseです。 -
localestring (オプション)追加日: v1.12#ユーザーロケールを指定します。例:
en-GB,de-DEなど。ロケールはnavigator.languageの値、Accept-Languageリクエストヘッダーの値、および数値と日付のフォーマット規則に影響します。デフォルトはシステムのデフォルトロケールです。エミュレーションガイドでエミュレーションの詳細について学びましょう。 -
offlineboolean (オプション)追加日: v1.12#ネットワークがオフラインであるとエミュレートするかどうか。デフォルトは
falseです。ネットワークエミュレーションについて詳しく学びましょう。 -
recordHarObject (オプション)追加日: v1.12#-
omitContentboolean (optional)HARからリクエストコンテンツを省略するかどうかを制御するオプションの設定。デフォルトは
falseです。非推奨、代わりにcontentポリシーを使用してください。 -
content"omit" | "embed" | "attach" (optional)リソースコンテンツ管理を制御するオプション設定。
omitが指定されている場合、コンテンツは永続化されません。attachが指定されている場合、リソースは個別のファイルまたはZIPアーカイブのエントリとして永続化されます。embedが指定されている場合、HAR仕様に従ってコンテンツはHARファイルにインラインで保存されます。.zip出力ファイルの場合はデフォルトでattach、その他のすべてのファイル拡張子の場合はembedです。 -
pathstringHARファイルを書き込むファイルシステム上のパス。ファイル名が
.zipで終わる場合、デフォルトでcontent: 'attach'が使用されます。 -
mode"full" | "minimal" (optional)minimalに設定すると、HARからのルーティングに必要な情報のみが記録されます。これにより、HARからリプレイするときに使用されないサイズ、タイミング、ページ、クッキー、セキュリティ、その他の種類のHAR情報が省略されます。デフォルトはfullです。 -
urlFilterstring | RegExp (optional)HARに保存されるリクエストをフィルタリングするためのグロブまたは正規表現パターン。コンテキストオプション経由でbaseURLが提供され、渡されたURLがパスである場合、
new URL()コンストラクタ経由でマージされます。デフォルトはなし。
すべてのページのHAR記録を
recordHar.pathファイルに有効にします。指定されていない場合、HARは記録されません。HARが保存されるようにbrowserContext.close()を待機していることを確認してください。 -
-
recordVideoObject (オプション)追加日: v1.12#-
dirstringビデオを保存するディレクトリへのパス。
-
sizeObject (optional)記録されたビデオのオプションの寸法。指定されていない場合、サイズは800x800に収まるようにスケールダウンされた
viewportと等しくなります。viewportが明示的に構成されていない場合、ビデオサイズはデフォルトで800x450になります。必要に応じて、各ページの実際の画像は指定されたサイズに収まるようにスケールダウンされます。
すべてのページのビデオ録画を
recordVideo.dirディレクトリに有効にします。指定されていない場合、ビデオは記録されません。ビデオが保存されるようにbrowserContext.close()を待機していることを確認してください。 -
-
timeoutnumber (optional)追加されたバージョン: v1.15#アプリケーションが起動するのを待つ最大時間 (ミリ秒)。デフォルトは
30000(30秒) です。タイムアウトを無効にするには0を渡します。 -
timezoneIdstring (オプション)追加日: v1.12#コンテキストのタイムゾーンを変更します。サポートされているタイムゾーンIDのリストについては、ICUのmetaZones.txtを参照してください。デフォルトはシステムのタイムゾーンです。
-
tracesDirstring (オプション)追加バージョン: v1.36#指定されている場合、トレースはこのディレクトリに保存されます。
-
戻り値