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) fuse がfalse
に設定されていないことを確認してください。
メソッド
launch
追加: v1.9executablePath で指定された Electron アプリケーションを起動します。
使用法
await electron.launch();
await electron.launch(options);
引数
options
Object (オプション)-
acceptDownloads
boolean (オプション)追加: v1.12#すべての添付ファイルを自動的にダウンロードするかどうか。デフォルトは
true
で、すべてのダウンロードが許可されます。 -
起動時にアプリケーションに渡す追加の引数。通常、ここにメインスクリプト名を渡します。
-
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'
です。 -
アプリケーションを起動する現在のワーキングディレクトリ。
-
env
Object<string, string> (オプション)#Electron に表示される環境変数を指定します。デフォルトは
process.env
です。 -
executablePath
string (オプション)#指定された Electron アプリケーションを起動します。指定しない場合、このパッケージにインストールされているデフォルトの Electron 実行可能ファイル (
node_modules/.bin/electron
にあります) を起動します。 -
extraHTTPHeaders
Object<string, string> (オプション)追加: v1.12#すべてのリクエストとともに送信される追加の HTTP ヘッダーを含むオブジェクト。デフォルトはなし。
-
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-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
stringHAR ファイルを書き込むファイルシステムのパス。ファイル名が
.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 (オプション)記録されたビデオのオプションの寸法。指定しない場合、サイズは 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#指定した場合、トレースはこのディレクトリに保存されます。
-
戻り値