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

TestOptions

Playwright Test は、テスト環境、BrowserBrowserContext などを構成するための多くのオプションを提供します。

これらのオプションは通常、構成ファイル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: 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 testOptions.browserName

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

使用法

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 にアクセスしてもクライアント証明書は選択されません。localhostlocal.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://localhost: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 の詳細。デフォルトは true です。ただし、devtools オプションが 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' - 基本認証情報を含む Authorization ヘッダーが、各 API リクエストとともに送信されます。'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.headless および testOptions.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-GBde-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

        ドメインとパスは必須です。Cookie をすべてのサブドメインにも適用するには、ドメインにドットをプレフィックスとして付けます (".example.com" など)。

      • path string

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

      • expires number

        Unix 時間 (秒単位)。

      • httpOnly boolean

      • secure boolean

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

        sameSite フラグ

      コンテキストに設定する Cookie
    • 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': テストを初めて再試行するときのみビデオを録画します。

ビデオサイズを制御するには、mode および size プロパティを持つオブジェクトを渡します。ビデオサイズが指定されていない場合、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

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

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

使用法

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

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

  • null | Object
    • width number

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

    • height number

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