TestOptions
Playwright Testは、テスト環境、ブラウザ、ブラウザコンテキストなどの設定に多くのオプションを提供します。
これらのオプションは通常、設定ファイルでtestConfig.useおよびtestProject.useを介して提供されます。
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false,
viewport: { width: 1280, height: 720 },
ignoreHTTPSErrors: true,
video: 'on-first-retry',
},
});
あるいは、test.use() を使用すると、ファイルの一部のオプションを上書きできます。
import { test, expect } from '@playwright/test';
// Run tests in this file with portrait-like viewport.
test.use({ viewport: { width: 600, height: 900 } });
test('my portrait test', async ({ page }) => {
// ...
});
プロパティ
acceptDownloads
追加バージョン: v1.10すべての添付ファイルを自動的にダウンロードするかどうか。デフォルトはtrue
で、すべてのダウンロードが許可されます。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
acceptDownloads: false,
},
});
型
actionTimeout
追加バージョン: v1.10各Playwrightアクションのデフォルトのタイムアウト(ミリ秒単位)。デフォルトは0(タイムアウトなし)です。
これは、page.setDefaultTimeout() で設定されるものと同じ、すべてのPlaywrightアクションのデフォルトタイムアウトです。
使用方法
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
actionTimeout: 0,
},
});
様々なタイムアウトについて詳しくはこちら。
型
baseURL
追加バージョン: v1.10page.goto()、page.route()、page.waitForURL()、page.waitForRequest()、またはpage.waitForResponse() を使用する際、対応するURLを構築するためにURL()
コンストラクタを使用してベースURLを考慮します。デフォルトでは設定されていません。例
- baseURL:
https://:3000
で`/bar.html`に移動すると`https://:3000/bar.html`になります - baseURL:
https://:3000/foo/
で`./bar.html`に移動すると`https://:3000/foo/bar.html`になります - baseURL:
https://:3000/foo
(末尾のスラッシュなし)で`./bar.html`に移動すると`https://:3000/bar.html`になります
使用方法
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
baseURL: 'https://:3000',
},
});
型
browserName
追加バージョン: v1.10テストを実行するブラウザの名前。デフォルトは`'chromium'`です。ほとんどの場合、TestConfigで`browserName`を設定する必要があります。
使用方法
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
browserName: 'firefox',
},
});
型
- "chromium" | "firefox" | "webkit"
bypassCSP
追加バージョン: v1.10ページのContent-Security-Policyのバイパスを切り替えます。デフォルトはfalse
です。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
bypassCSP: true,
}
});
型
channel
追加バージョン: v1.10ブラウザの配布チャンネル。
「chromium」を使用して新しいヘッドレスモードを有効にします。
「chrome」、「chrome-beta」、「chrome-dev」、「chrome-canary」、「msedge」、「msedge-beta」、「msedge-dev」、または「msedge-canary」を使用して、ブランドのGoogle ChromeおよびMicrosoft Edgeを使用します。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
projects: [
{
name: 'Microsoft Edge',
use: {
...devices['Desktop Edge'],
channel: 'msedge'
},
},
]
});
型
clientCertificates
追加バージョン: 1.46TLSクライアント認証により、サーバーはクライアント証明書を要求し、それを検証できます。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
clientCertificates: [{
origin: 'https://example.com',
certPath: './cert.pem',
keyPath: './key.pem',
passphrase: 'mysecretpassword',
}],
},
});
型
- Array<Object>
-
origin
string証明書が有効な正確なオリジン。オリジンには
https
プロトコル、ホスト名、およびオプションでポートが含まれます。 -
certPath
string (オプション)PEM形式の証明書ファイルへのパス。
-
cert
Buffer (オプション)PEM形式の証明書の直接値。
-
keyPath
string (オプション)PEM形式の秘密鍵ファイルへのパス。
-
key
Buffer (オプション)PEM形式の秘密鍵の直接値。
-
pfxPath
string (オプション)PFXまたはPKCS12エンコードされた秘密鍵および証明書チェーンファイルへのパス。
-
pfx
Buffer (オプション)PFXまたはPKCS12エンコードされた秘密鍵および証明書チェーンの直接値。
-
passphrase
string (オプション)秘密鍵(PEMまたはPFX)のパスフレーズ。
-
詳細
使用するクライアント証明書の配列。各証明書オブジェクトは、certPath
とkeyPath
の両方、単一のpfxPath
、またはそれらに対応する直接値(cert
とkey
、またはpfx
)のいずれかを持つ必要があります。オプションで、証明書が暗号化されている場合はpassphrase
プロパティを指定する必要があります。origin
プロパティは、証明書が有効なリクエスト元の正確な一致とともに提供される必要があります。
macOSでWebKitを使用する場合、`localhost`へのアクセスではクライアント証明書が取得されません。`localhost`を`local.playwright`に置き換えることで機能させることができます。
colorScheme
追加バージョン: v1.10prefers-colors-schemeメディア機能をエミュレートします。サポートされる値は'light'
と'dark'
です。page.emulateMedia()で詳細をご覧ください。null
を渡すと、エミュレーションがシステムのデフォルトにリセットされます。デフォルトは'light'
です。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
colorScheme: 'dark',
},
});
型
- null | "light" | "dark" | "no-preference"
connectOptions
追加バージョン: v1.10使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
connectOptions: {
wsEndpoint: 'ws://:5678',
},
},
});
接続オプションが指定されている場合、デフォルトのfixtures.browser、fixtures.context、およびfixtures.pageは、ローカルでブラウザを起動する代わりにリモートブラウザを使用し、testOptions.headlessやtestOptions.channelなどの起動オプションは無視されます。
型
- void | Object
-
wsEndpoint
string接続するブラウザのWebSocketエンドポイント。
-
headers
void | Object<string, string> (オプション)WebSocket接続リクエストとともに送信される追加のHTTPヘッダー。オプション。
-
timeout
number (オプション)接続が確立されるまでのタイムアウト(ミリ秒単位)。オプション。デフォルトはタイムアウトなし。
-
exposeNetwork
string (オプション)接続元のクライアントで利用可能なネットワークを、接続先のブラウザに公開するオプション。browserType.connect()で詳細をご覧ください。
-
contextOptions
追加バージョン: v1.10コンテキスト作成時にbrowser.newContext()に渡されるオプション。たとえばtestOptions.viewportのような特定のオプションは、これよりも優先されます。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
contextOptions: {
reducedMotion: 'reduce',
},
},
});
型
deviceScaleFactor
追加バージョン: v1.10デバイスのスケールファクタ(dprと考えることもできます)を指定します。デフォルトは1
です。デバイススケールファクタによるデバイスエミュレーションについて詳しくはこちら。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 2560, height: 1440 },
deviceScaleFactor: 2,
},
});
型
extraHTTPHeaders
追加バージョン: v1.10すべてのリクエストとともに送信される追加のHTTPヘッダーを含むオブジェクト。デフォルトはなし。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
extraHTTPHeaders: {
'X-My-Header': 'value',
},
},
});
型
geolocation
追加バージョン: v1.10使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
geolocation: { longitude: 12.492507, latitude: 41.889938 },
},
});
位置情報について詳しくはこちら。
型
hasTouch
追加バージョン: v1.10ビューポートがタッチイベントをサポートするかどうかを指定します。デフォルトはfalseです。モバイルエミュレーションについて詳しくはこちら。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
hasTouch: true
},
});
型
headless
追加バージョン: v1.10ブラウザをヘッドレスモードで実行するかどうか。ChromiumおよびFirefoxの詳細は、こちらをご覧ください。devtoolsオプションがtrue
でない限り、デフォルトはtrue
です。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false
},
});
型
httpCredentials
追加バージョン: v1.10HTTP認証の認証情報。オリジンが指定されていない場合、ユーザー名とパスワードは不正な応答があった際に任意のサーバーに送信されます。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
httpCredentials: {
username: 'user',
password: 'pass',
},
},
});
型
- Object
-
username
string -
password
string -
origin
string (オプション)特定のオリジン(scheme://host:port).
-
send
"unauthorized" | "always" (オプション)このオプションは、対応するAPIRequestContextから送信されたリクエストにのみ適用され、ブラウザから送信されたリクエストには影響しません。
'always'
- 各APIリクエストに基本認証情報を含むAuthorization
ヘッダーが送信されます。'unauthorized
- 認証情報は、WWW-Authenticate
ヘッダーを含む401(Unauthorized)応答が受信された場合にのみ送信されます。デフォルトは'unauthorized'
です。
-
ignoreHTTPSErrors
追加バージョン: v1.10ネットワークリクエストを送信する際にHTTPSエラーを無視するかどうか。デフォルトはfalse
です。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
ignoreHTTPSErrors: true,
},
});
型
isMobile
追加バージョン: v1.10meta viewport
タグが考慮され、タッチイベントが有効になるかどうか。isMobileはデバイスの一部であるため、手動で設定する必要はありません。デフォルトはfalse
で、Firefoxではサポートされていません。モバイルエミュレーションについて詳しくはこちら。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
isMobile: false,
},
});
型
javaScriptEnabled
追加バージョン: v1.10コンテキストでJavaScriptを有効にするかどうか。デフォルトはtrue
です。JavaScriptの無効化について詳しくはこちら。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
javaScriptEnabled: false,
},
});
型
launchOptions
追加バージョン: v1.10ブラウザを起動するために使用されるオプション。browserType.launch()に渡されます。testOptions.headlessやtestOptions.channelなどの特定のオプションは、これよりも優先されます。
カスタムブラウザ引数を使用すると、Playwrightの機能が壊れる可能性があるため、自己責任でご使用ください。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
launchOptions: {
args: ['--start-maximized']
}
}
}
]
});
型
locale
追加バージョン: v1.10ユーザーロケールを指定します。例: en-GB
, de-DE
など。ロケールはnavigator.language
の値、Accept-Language
リクエストヘッダーの値、および数値と日付の書式設定規則に影響を与えます。デフォルトはen-US
です。エミュレーションの詳細については、エミュレーションガイドをご覧ください。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
locale: 'it-IT',
},
});
型
navigationTimeout
追加バージョン: v1.10各ナビゲーションアクションのタイムアウト(ミリ秒単位)。デフォルトは0(タイムアウトなし)です。
これは、page.setDefaultNavigationTimeout() で設定されるものと同じ、デフォルトのナビゲーションタイムアウトです。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
navigationTimeout: 3000,
},
});
様々なタイムアウトについて詳しくはこちら。
型
offline
追加バージョン: v1.10ネットワークがオフラインであるかのようにエミュレートするかどうか。デフォルトはfalse
です。ネットワークエミュレーションについて詳しくはこちら。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
offline: true
},
});
型
permissions
追加バージョン: v1.10このコンテキスト内のすべてのページに付与する権限のリスト。browserContext.grantPermissions()で詳細をご覧ください。デフォルトはなし。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
permissions: ['notifications'],
},
});
型
proxy
追加バージョン: v1.10ネットワークプロキシ設定。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
proxy: {
server: 'http://myproxy.com:3128',
bypass: 'localhost',
},
},
});
型
- Object
-
server
stringすべてのリクエストに使用されるプロキシ。HTTPおよびSOCKSプロキシがサポートされており、例:
http://myproxy.com:3128
またはsocks5://myproxy.com:3128
。短縮形myproxy.com:3128
はHTTPプロキシとみなされます。 -
bypass
string (オプション)プロキシをバイパスするオプションのカンマ区切りドメイン。例:
".com, chromium.org, .domain.com"
。 -
username
string (オプション)HTTPプロキシが認証を必要とする場合に使用するオプションのユーザー名。
-
password
string (オプション)HTTPプロキシが認証を必要とする場合に使用するオプションのパスワード。
-
screenshot
追加バージョン: v1.10各テスト後にスクリーンショットを自動的にキャプチャするかどうか。デフォルトは'off'
です。
'off'
: スクリーンショットをキャプチャしません。'on'
: 各テスト後にスクリーンショットをキャプチャします。'only-on-failure'
: 各テストの失敗後にスクリーンショットをキャプチャします。'on-first-failure'
: 各テストの最初の失敗後にスクリーンショットをキャプチャします。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
screenshot: 'only-on-failure',
},
});
自動スクリーンショットについて詳しくはこちら。
型
- Object | "off" | "on" | "only-on-failure" | "on-first-failure"
serviceWorkers
追加バージョン: v1.10サイトがService Workerを登録することを許可するかどうか。デフォルトは'allow'
です。
'allow'
: Service Workerが登録できます。'block'
: PlaywrightはすべてのService Workerの登録をブロックします。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
serviceWorkers: 'allow'
},
});
型
- "allow" | "block"
storageState
追加バージョン: v1.10ストレージ状態と認証について詳しくはこちら。
与えられたストレージ状態でコンテキストを埋めます。このオプションは、browserContext.storageState()で取得したログイン情報でコンテキストを初期化するために使用できます。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
storageState: 'storage-state.json',
},
});
型
詳細
ストレージ状態が設定で設定されている場合、ファイルごとのストレージ状態をリセットできます
import { test } from '@playwright/test';
// Reset storage state for this file to avoid being authenticated
test.use({ storageState: { cookies: [], origins: [] } });
test('not signed in test', async ({ page }) => {
// ...
});
testIdAttribute
追加バージョン: v1.27page.getByTestId()で使用されるカスタム属性。デフォルトではdata-testid
が使用されます。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
testIdAttribute: 'pw-test-id',
},
});
timezoneId
追加バージョン: v1.10コンテキストのタイムゾーンを変更します。サポートされているタイムゾーンIDのリストについては、ICUのmetaZones.txtをご覧ください。デフォルトはシステムのタイムゾーンです。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
timezoneId: 'Europe/Rome',
},
});
型
trace
追加バージョン: v1.10各テストのトレースを記録するかどうか。デフォルトは'off'
です。
'off'
: トレースを記録しません。'on'
: 各テストのトレースを記録します。'on-first-retry'
: テストを初めて再試行する場合にのみトレースを記録します。'on-all-retries'
: テストを再試行する場合にのみトレースを記録します。'retain-on-failure'
: 各テストのトレースを記録します。テスト実行が成功した場合、記録されたトレースを削除します。'retain-on-first-failure'
: 各テストの最初の実行時にトレースを記録しますが、再試行時には記録しません。テスト実行が成功した場合、記録されたトレースを削除します。
さらに制御するには、mode
と有効にするトレース機能を指定するオブジェクトを渡します。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
trace: 'on-first-retry'
},
});
トレースの記録について詳しくはこちら。
型
- Object | "off" | "on" | "retain-on-failure" | "on-first-retry" | "retain-on-first-failure"
-
mode
"off" | "on" | "retain-on-failure" | "on-first-retry" | "on-all-retries" | "retain-on-first-failure"トレース記録モード。
-
attachments
boolean (オプション)テスト添付ファイルを含めるかどうか。デフォルトはtrueです。オプション。
-
screenshots
boolean (オプション)トレース中にスクリーンショットをキャプチャするかどうか。スクリーンショットはタイムラインプレビューの作成に使用されます。デフォルトはtrueです。オプション。
-
snapshots
boolean (オプション)各アクションでDOMスナップショットをキャプチャするかどうか。デフォルトはtrueです。オプション。
-
sources
boolean (オプション)トレースアクションのソースファイルを含めるかどうか。デフォルトはtrueです。オプション。
-
userAgent
追加バージョン: v1.10このコンテキストで使用する特定のユーザーエージェント。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
userAgent: 'some custom ua',
},
});
型
video
追加バージョン: v1.10各テストのビデオを記録するかどうか。デフォルトは'off'
です。
'off'
: ビデオを記録しません。'on'
: 各テストのビデオを記録します。'retain-on-failure'
: 各テストのビデオを記録しますが、成功したテスト実行のすべてのビデオを削除します。'on-first-retry'
: テストを初めて再試行する場合にのみビデオを記録します。
ビデオサイズを制御するには、mode
とsize
プロパティを持つオブジェクトを渡します。ビデオサイズが指定されていない場合、testOptions.viewportを800x800に収まるように縮小したサイズと等しくなります。viewport
が明示的に設定されていない場合、ビデオサイズはデフォルトで800x450になります。各ページの実際の画像は、指定されたサイズに収まるように必要に応じて縮小されます。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
video: 'on-first-retry',
},
});
ビデオの記録について詳しくはこちら。
型
- Object | "off" | "on" | "retain-on-failure" | "on-first-retry"
viewport
追加バージョン: v1.10各ページのビューポートを一貫してエミュレートします。デフォルトは1280x720のビューポートです。一貫したビューポートエミュレーションを無効にするにはnull
を使用します。ビューポートエミュレーションについて詳しくはこちら。
null
値はデフォルトのプリセットを無効にし、ビューポートをオペレーティングシステムによって定義されたホストウィンドウサイズに依存させます。これにより、テストの実行が非決定的になります。
使用方法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 100, height: 100 },
},
});
型