メインコンテンツへスキップ

TestOptions

Playwright Testは、テスト環境、ブラウザブラウザコンテキストなどの設定に多くのオプションを提供します。

これらのオプションは通常、設定ファイルtestConfig.useおよびtestProject.useを介して提供されます。

playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false,
viewport: { width: 1280, height: 720 },
ignoreHTTPSErrors: true,
video: 'on-first-retry',
},
});

あるいは、test.use() を使用すると、ファイルの一部のオプションを上書きできます。

example.spec.ts
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 testOptions.acceptDownloads

すべての添付ファイルを自動的にダウンロードするかどうか。デフォルトはtrueで、すべてのダウンロードが許可されます。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
acceptDownloads: false,
},
});


actionTimeout

追加バージョン: v1.10 testOptions.actionTimeout

各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.10 testOptions.baseURL

page.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 testOptions.browserName

テストを実行するブラウザの名前。デフォルトは`'chromium'`です。ほとんどの場合、TestConfigで`browserName`を設定する必要があります。

使用方法

playwright.config.ts
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
use: {
browserName: 'firefox',
},
});

  • "chromium" | "firefox" | "webkit"

bypassCSP

追加バージョン: v1.10 testOptions.bypassCSP

ページのContent-Security-Policyのバイパスを切り替えます。デフォルトはfalseです。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
bypassCSP: true,
}
});


channel

追加バージョン: v1.10 testOptions.channel

ブラウザの配布チャンネル。

「chromium」を使用して新しいヘッドレスモードを有効にします

「chrome」、「chrome-beta」、「chrome-dev」、「chrome-canary」、「msedge」、「msedge-beta」、「msedge-dev」、または「msedge-canary」を使用して、ブランドのGoogle ChromeおよびMicrosoft Edgeを使用します。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
projects: [
{
name: 'Microsoft Edge',
use: {
...devices['Desktop Edge'],
channel: 'msedge'
},
},
]
});


clientCertificates

追加バージョン: 1.46 testOptions.clientCertificates

TLSクライアント認証により、サーバーはクライアント証明書を要求し、それを検証できます。

使用方法

playwright.config.ts
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)のパスフレーズ。

詳細

使用するクライアント証明書の配列。各証明書オブジェクトは、certPathkeyPathの両方、単一のpfxPath、またはそれらに対応する直接値(certkey、またはpfx)のいずれかを持つ必要があります。オプションで、証明書が暗号化されている場合はpassphraseプロパティを指定する必要があります。originプロパティは、証明書が有効なリクエスト元の正確な一致とともに提供される必要があります。

注意

macOSでWebKitを使用する場合、`localhost`へのアクセスではクライアント証明書が取得されません。`localhost`を`local.playwright`に置き換えることで機能させることができます。


colorScheme

追加バージョン: v1.10 testOptions.colorScheme

prefers-colors-schemeメディア機能をエミュレートします。サポートされる値は'light''dark'です。page.emulateMedia()で詳細をご覧ください。nullを渡すと、エミュレーションがシステムのデフォルトにリセットされます。デフォルトは'light'です。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
colorScheme: 'dark',
},
});

  • null | "light" | "dark" | "no-preference"

connectOptions

追加バージョン: v1.10 testOptions.connectOptions

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
connectOptions: {
wsEndpoint: 'ws://:5678',
},
},
});

接続オプションが指定されている場合、デフォルトのfixtures.browserfixtures.context、およびfixtures.pageは、ローカルでブラウザを起動する代わりにリモートブラウザを使用し、testOptions.headlesstestOptions.channelなどの起動オプションは無視されます。

  • void | Object
    • wsEndpoint string

      接続するブラウザのWebSocketエンドポイント。

    • headers void | Object<string, string> (オプション)

      WebSocket接続リクエストとともに送信される追加のHTTPヘッダー。オプション。

    • timeout number (オプション)

      接続が確立されるまでのタイムアウト(ミリ秒単位)。オプション。デフォルトはタイムアウトなし。

    • exposeNetwork string (オプション)

      接続元のクライアントで利用可能なネットワークを、接続先のブラウザに公開するオプション。browserType.connect()で詳細をご覧ください。


contextOptions

追加バージョン: v1.10 testOptions.contextOptions

コンテキスト作成時にbrowser.newContext()に渡されるオプション。たとえばtestOptions.viewportのような特定のオプションは、これよりも優先されます。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
contextOptions: {
reducedMotion: 'reduce',
},
},
});


deviceScaleFactor

追加バージョン: v1.10 testOptions.deviceScaleFactor

デバイスのスケールファクタ(dprと考えることもできます)を指定します。デフォルトは1です。デバイススケールファクタによるデバイスエミュレーションについて詳しくはこちら。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
viewport: { width: 2560, height: 1440 },
deviceScaleFactor: 2,
},
});


extraHTTPHeaders

追加バージョン: v1.10 testOptions.extraHTTPHeaders

すべてのリクエストとともに送信される追加のHTTPヘッダーを含むオブジェクト。デフォルトはなし。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
extraHTTPHeaders: {
'X-My-Header': 'value',
},
},
});


geolocation

追加バージョン: v1.10 testOptions.geolocation

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
geolocation: { longitude: 12.492507, latitude: 41.889938 },
},
});

位置情報について詳しくはこちら。

  • Object
    • latitude number

      -90から90までの緯度。

    • longitude number

      -180から180までの経度。

    • accuracy number (オプション)

      非負の精度値。デフォルトは0です。


hasTouch

追加バージョン: v1.10 testOptions.hasTouch

ビューポートがタッチイベントをサポートするかどうかを指定します。デフォルトはfalseです。モバイルエミュレーションについて詳しくはこちら。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
hasTouch: true
},
});


headless

追加バージョン: v1.10 testOptions.headless

ブラウザをヘッドレスモードで実行するかどうか。ChromiumおよびFirefoxの詳細は、こちらをご覧ください。devtoolsオプションがtrueでない限り、デフォルトはtrueです。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
headless: false
},
});


httpCredentials

追加バージョン: v1.10 testOptions.httpCredentials

HTTP認証の認証情報。オリジンが指定されていない場合、ユーザー名とパスワードは不正な応答があった際に任意のサーバーに送信されます。

使用方法

playwright.config.ts
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 testOptions.ignoreHTTPSErrors

ネットワークリクエストを送信する際にHTTPSエラーを無視するかどうか。デフォルトはfalseです。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
ignoreHTTPSErrors: true,
},
});


isMobile

追加バージョン: v1.10 testOptions.isMobile

meta viewportタグが考慮され、タッチイベントが有効になるかどうか。isMobileはデバイスの一部であるため、手動で設定する必要はありません。デフォルトはfalseで、Firefoxではサポートされていません。モバイルエミュレーションについて詳しくはこちら。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
isMobile: false,
},
});


javaScriptEnabled

追加バージョン: v1.10 testOptions.javaScriptEnabled

コンテキストでJavaScriptを有効にするかどうか。デフォルトはtrueです。JavaScriptの無効化について詳しくはこちら。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
javaScriptEnabled: false,
},
});


launchOptions

追加バージョン: v1.10 testOptions.launchOptions

ブラウザを起動するために使用されるオプション。browserType.launch()に渡されます。testOptions.headlesstestOptions.channelなどの特定のオプションは、これよりも優先されます。

警告

カスタムブラウザ引数を使用すると、Playwrightの機能が壊れる可能性があるため、自己責任でご使用ください。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
launchOptions: {
args: ['--start-maximized']
}
}
}
]
});


locale

追加バージョン: v1.10 testOptions.locale

ユーザーロケールを指定します。例: en-GB, de-DEなど。ロケールはnavigator.languageの値、Accept-Languageリクエストヘッダーの値、および数値と日付の書式設定規則に影響を与えます。デフォルトはen-USです。エミュレーションの詳細については、エミュレーションガイドをご覧ください。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
locale: 'it-IT',
},
});


navigationTimeout

追加バージョン: v1.10 testOptions.navigationTimeout

各ナビゲーションアクションのタイムアウト(ミリ秒単位)。デフォルトは0(タイムアウトなし)です。

これは、page.setDefaultNavigationTimeout() で設定されるものと同じ、デフォルトのナビゲーションタイムアウトです。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
navigationTimeout: 3000,
},
});

様々なタイムアウトについて詳しくはこちら。


offline

追加バージョン: v1.10 testOptions.offline

ネットワークがオフラインであるかのようにエミュレートするかどうか。デフォルトはfalseです。ネットワークエミュレーションについて詳しくはこちら。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
offline: true
},
});


permissions

追加バージョン: v1.10 testOptions.permissions

このコンテキスト内のすべてのページに付与する権限のリスト。browserContext.grantPermissions()で詳細をご覧ください。デフォルトはなし。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
permissions: ['notifications'],
},
});


proxy

追加バージョン: v1.10 testOptions.proxy

ネットワークプロキシ設定。

使用方法

playwright.config.ts
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 testOptions.screenshot

各テスト後にスクリーンショットを自動的にキャプチャするかどうか。デフォルトは'off'です。

  • 'off': スクリーンショットをキャプチャしません。
  • 'on': 各テスト後にスクリーンショットをキャプチャします。
  • 'only-on-failure': 各テストの失敗後にスクリーンショットをキャプチャします。
  • 'on-first-failure': 各テストの最初の失敗後にスクリーンショットをキャプチャします。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
screenshot: 'only-on-failure',
},
});

自動スクリーンショットについて詳しくはこちら。

  • Object | "off" | "on" | "only-on-failure" | "on-first-failure"
    • mode "off" | "on" | "only-on-failure" | "on-first-failure"

      自動スクリーンショットモード。

    • fullPage boolean (オプション)

      trueの場合、現在表示されているビューポートではなく、スクロール可能なページ全体のスクリーンショットを撮影します。デフォルトはfalseです。

    • omitBackground boolean (オプション)

      デフォルトの白い背景を非表示にし、透明度のあるスクリーンショットのキャプチャを可能にします。jpeg画像には適用されません。デフォルトはfalseです。


serviceWorkers

追加バージョン: v1.10 testOptions.serviceWorkers

サイトがService Workerを登録することを許可するかどうか。デフォルトは'allow'です。

  • 'allow': Service Workerが登録できます。
  • 'block': PlaywrightはすべてのService Workerの登録をブロックします。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
serviceWorkers: 'allow'
},
});

  • "allow" | "block"

storageState

追加バージョン: v1.10 testOptions.storageState

ストレージ状態と認証について詳しくはこちら。

与えられたストレージ状態でコンテキストを埋めます。このオプションは、browserContext.storageState()で取得したログイン情報でコンテキストを初期化するために使用できます。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
storageState: 'storage-state.json',
},
});

  • string | Object
    • cookies Array<Object>
      • name string

      • value string

      • domain string

        ドメインとパスは必須です。クッキーをすべてのサブドメインにも適用するには、ドメインの前にドットを付けます。例: ".example.com"

      • path string

        ドメインとパスは必須です

      • expires number

        Unix時間(秒単位)。

      • httpOnly boolean

      • secure boolean

      • sameSite "Strict" | "Lax" | "None"

        sameSiteフラグ

      コンテキストに設定するクッキー
    • origins Array<Object>

詳細

ストレージ状態が設定で設定されている場合、ファイルごとのストレージ状態をリセットできます

not-signed-in.spec.ts
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.27 testOptions.testIdAttribute

page.getByTestId()で使用されるカスタム属性。デフォルトではdata-testidが使用されます。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
testIdAttribute: 'pw-test-id',
},
});

timezoneId

追加バージョン: v1.10 testOptions.timezoneId

コンテキストのタイムゾーンを変更します。サポートされているタイムゾーンIDのリストについては、ICUのmetaZones.txtをご覧ください。デフォルトはシステムのタイムゾーンです。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
timezoneId: 'Europe/Rome',
},
});


trace

追加バージョン: v1.10 testOptions.trace

各テストのトレースを記録するかどうか。デフォルトは'off'です。

  • 'off': トレースを記録しません。
  • 'on': 各テストのトレースを記録します。
  • 'on-first-retry': テストを初めて再試行する場合にのみトレースを記録します。
  • 'on-all-retries': テストを再試行する場合にのみトレースを記録します。
  • 'retain-on-failure': 各テストのトレースを記録します。テスト実行が成功した場合、記録されたトレースを削除します。
  • 'retain-on-first-failure': 各テストの最初の実行時にトレースを記録しますが、再試行時には記録しません。テスト実行が成功した場合、記録されたトレースを削除します。

さらに制御するには、modeと有効にするトレース機能を指定するオブジェクトを渡します。

使用方法

playwright.config.ts
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 testOptions.userAgent

このコンテキストで使用する特定のユーザーエージェント。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
userAgent: 'some custom ua',
},
});


video

追加バージョン: v1.10 testOptions.video

各テストのビデオを記録するかどうか。デフォルトは'off'です。

  • 'off': ビデオを記録しません。
  • 'on': 各テストのビデオを記録します。
  • 'retain-on-failure': 各テストのビデオを記録しますが、成功したテスト実行のすべてのビデオを削除します。
  • 'on-first-retry': テストを初めて再試行する場合にのみビデオを記録します。

ビデオサイズを制御するには、modesizeプロパティを持つオブジェクトを渡します。ビデオサイズが指定されていない場合、testOptions.viewportを800x800に収まるように縮小したサイズと等しくなります。viewportが明示的に設定されていない場合、ビデオサイズはデフォルトで800x450になります。各ページの実際の画像は、指定されたサイズに収まるように必要に応じて縮小されます。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
video: 'on-first-retry',
},
});

ビデオの記録について詳しくはこちら。

  • Object | "off" | "on" | "retain-on-failure" | "on-first-retry"
    • mode "off" | "on" | "retain-on-failure" | "on-first-retry"

      ビデオ記録モード。

    • size Object (オプション)

      記録されたビデオのサイズ。オプション。


viewport

追加バージョン: v1.10 testOptions.viewport

各ページのビューポートを一貫してエミュレートします。デフォルトは1280x720のビューポートです。一貫したビューポートエミュレーションを無効にするにはnullを使用します。ビューポートエミュレーションについて詳しくはこちら。

注意

null値はデフォルトのプリセットを無効にし、ビューポートをオペレーティングシステムによって定義されたホストウィンドウサイズに依存させます。これにより、テストの実行が非決定的になります。

使用方法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
viewport: { width: 100, height: 100 },
},
});

  • null | Object
    • width number

      ページの幅(ピクセル単位)。

    • height number

      ページの高さ(ピクセル単位)。