TestOptions
Playwright Testは、テスト環境、ブラウザ、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.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ページのコンテンツセキュリティポリシーをバイパスするかどうかを切り替えます。デフォルトはfalseです。
使用法
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
bypassCSP: true,
}
});
タイプ
channel
追加バージョン: v1.10ブラウザ配布チャネル。
新しいヘッドレスモードを有効にするには、「chromium」を使用します。
ブランドのGoogle ChromeおよびMicrosoft Edgeを使用するには、「chrome」、「chrome-beta」、「chrome-dev」、「chrome-canary」、「msedge」、「msedge-beta」、「msedge-dev」、または「msedge-canary」を使用します。
使用法
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>
-
originstring証明書が有効な正確なオリジン。オリジンには
httpsプロトコル、ホスト名、オプションでポートが含まれます。 -
certPathstring (optional)PEM形式の証明書ファイルへのパス。
-
certBuffer (optional)PEM形式の証明書の直接値。
-
keyPathstring (optional)PEM形式の秘密鍵ファイルへのパス。
-
keyBuffer (optional)PEM形式の秘密鍵の直接値。
-
pfxPathstring (optional)PFXまたはPKCS12形式でエンコードされた秘密鍵と証明書チェーンへのパス。
-
pfxBuffer (optional)PFXまたはPKCS12形式でエンコードされた秘密鍵と証明書チェーンの直接値。
-
passphrasestring (optional)秘密鍵(PEMまたはPFX)のパスフレーズ。
-
詳細
使用するクライアント証明書の配列。各証明書オブジェクトは、certPathとkeyPathの両方、単一のpfxPath、またはそれらに対応する直接値(certとkey、またはpfx)のいずれかを持っている必要があります。オプションで、証明書が暗号化されている場合はpassphraseプロパティを提供する必要があります。originプロパティは、証明書が有効なリクエストオリジンと正確に一致するように提供する必要があります。
クライアント証明書認証は、少なくとも1つのクライアント証明書が提供された場合にのみ有効になります。サーバーから送信されたすべてのクライアント証明書を拒否したい場合は、訪問する予定のドメインのいずれとも一致しない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
-
wsEndpointstring接続するブラウザのwebsocketエンドポイント。
-
headersvoid | Object<string, string> (オプション)Webソケット接続リクエストと共に送信される追加のHTTPヘッダー。オプション。
-
timeoutnumber (optional)接続が確立されるまでのタイムアウト(ミリ秒単位)。オプション。デフォルトはタイムアウトなし。
-
exposeNetworkstring (オプション)接続するクライアントで利用可能なネットワークを、接続先のブラウザに公開するオプション。詳細については、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の詳細。 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
-
usernamestring -
passwordstring -
originstring (optional)特定のオリジン(scheme://host:port)でのhttp資格情報の送信を制限します:ポート).
-
send"unauthorized" | "always" (optional)このオプションは、対応する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
-
serverstringすべてのリクエストに使用するプロキシ。HTTPおよびSOCKSプロキシがサポートされており、例として
http://myproxy.com:3128またはsocks5://myproxy.com:3128があります。短縮形myproxy.com:3128はHTTPプロキシと見なされます。 -
bypassstring (optional)プロキシをバイパスするオプションのカンマ区切りドメイン。例:
".com, chromium.org, .domain.com"。 -
usernamestring (optional)HTTPプロキシが認証を必要とする場合に使用するオプションのユーザー名。
-
passwordstring (optional)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サイトがサービスワーカーを登録することを許可するかどうか。デフォルトは'allow'です。
'allow': サービスワーカーを登録できます。'block': Playwrightはすべてのサービスワーカーの登録をブロックします。
使用法
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',
},
});
タイプ
- string | Object
詳細
設定でストレージ状態が設定されている場合、ファイルのためにストレージ状態をリセットすることができます
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"トレース記録モード。
-
attachmentsboolean (オプション)テストの添付ファイルを含めるかどうか。デフォルトはtrue。オプション。
-
screenshotsboolean (オプション)トレース中にスクリーンショットをキャプチャするかどうか。スクリーンショットはタイムラインプレビューの構築に使用されます。デフォルトはtrue。オプション。
-
snapshotsboolean (オプション)すべてのアクションでDOMスナップショットをキャプチャするかどうか。デフォルトはtrue。オプション。
-
sourcesboolean (オプション)トレースアクションのソースファイルを含めるかどうか。デフォルトは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 },
},
});
タイプ