TestOptions
Playwright Test は、テスト環境、Browser、BrowserContext などを構成するための多くのオプションを提供します。
これらのオプションは通常、構成ファイルで 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.10Playwright の各アクションのデフォルトのタイムアウト (ミリ秒単位)。デフォルトは 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:
http://localhost:3000
で/bar.html
に移動すると、http://localhost:3000/bar.html
になります - baseURL:
http://localhost:3000/foo/
で./bar.html
に移動すると、http://localhost:3000/foo/bar.html
になります - baseURL:
http://localhost:3000/foo
(末尾のスラッシュなし) で./bar.html
に移動すると、http://localhost:3000/bar.html
になります
使用法
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
baseURL: 'http://localhost: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://localhost: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.10browser.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 の詳細。デフォルトは true
です。ただし、devtools オプションが 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'
- 基本認証情報を含むAuthorization
ヘッダーが、各 API リクエストとともに送信されます。'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.10browserType.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各ページで一貫した viewport をエミュレートします。デフォルトは 1280x720 の viewport です。一貫した viewport のエミュレーションを無効にするには null
を使用します。viewport のエミュレーション の詳細はこちらをご覧ください。
null
値はデフォルトのプリセットからオプトアウトし、viewport をオペレーティングシステムによって定義されたホストウィンドウサイズに依存させます。これにより、テストの実行が非決定論的になります。
使用法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 100, height: 100 },
},
});
型