主要コンテンツへスキップ

BrowserType

BrowserType は、特定のブラウザインスタンスを起動したり、既存のインスタンスに接続したりするためのメソッドを提供します。Playwright を使用した自動化の典型的な例を以下に示します。

from playwright.sync_api import sync_playwright, Playwright

def run(playwright: Playwright):
chromium = playwright.chromium
browser = chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
# other actions...
browser.close()

with sync_playwright() as playwright:
run(playwright)

メソッド

connect

v1.9より前に追加 browserType.connect

このメソッドは、Node.js の BrowserType.launchServer を介して作成された既存のブラウザインスタンスに Playwright をアタッチします。

接続する Playwright インスタンスのメジャーバージョンとマイナーバージョンは、ブラウザを起動する Playwright のバージョンと一致する必要があります (1.2.3 → 1.2.x と互換性があります)。

使用法

browser_type.connect(ws_endpoint)
browser_type.connect(ws_endpoint, **kwargs)

引数

  • ws_endpoint str追加バージョン: v1.10#

    接続する Playwright ブラウザの WebSocket エンドポイントです。このエンドポイントは BrowserServer.wsEndpoint を介して取得します。

  • expose_network str (オプション)追加バージョン: v1.37#

    このオプションは、接続元のクライアントで利用可能なネットワークを、接続先のブラウザに公開します。カンマで区切られたルールのリストで構成されます。

    利用可能なルール

    1. ホスト名のパターン。例: example.com, *.org:99, x.*.y.com, *foo.org
    2. IP リテラル。例: 127.0.0.1, 0.0.0.0:99, [::1], [0:0::1]:99
    3. ローカルループバックインターフェースに一致する <loopback>: localhost, *.localhost, 127.0.0.1, [::1]

    一般的な例

    1. "*" ですべてのネットワークを公開します。
    2. "<loopback>" で localhost ネットワークを公開します。
    3. "*.test.internal-domain,*.staging.internal-domain,<loopback>" でテスト/ステージング環境と localhost を公開します。
  • headers Dict[str, str] (オプション)追加バージョン: v1.11#

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

  • slow_mo float (オプション)追加バージョン: v1.10#

    Playwright の操作を指定されたミリ秒数だけ遅くします。何が起こっているかを確認するのに役立ちます。デフォルトは 0 です。

  • timeout float (オプション)追加バージョン: v1.10#

    接続が確立されるまでの最大待ち時間 (ミリ秒)。デフォルトは 0 (タイムアウトなし) です。

戻り値


connect_over_cdp

追加バージョン: v1.9 browserType.connect_over_cdp

このメソッドは、Chrome DevTools Protocol を使用して、既存のブラウザインスタンスに Playwright をアタッチします。

デフォルトのブラウザコンテキストは browser.contexts を介してアクセスできます。

Chrome DevTools Protocol を介した接続は、Chromium ベースのブラウザでのみサポートされています。

この接続は、browser_type.connect() を介した Playwright プロトコル接続よりも忠実度が大幅に低いです。問題が発生している場合や高度な機能の使用を試みている場合は、browser_type.connect() を使用することをお勧めします。

使用法

browser = playwright.chromium.connect_over_cdp("https://:9222")
default_context = browser.contexts[0]
page = default_context.pages[0]

引数

  • endpoint_url str追加バージョン: v1.11#

    接続する CDP WebSocket エンドポイントまたは HTTP URL です。例: https://:9222/ または ws://127.0.0.1:9222/devtools/browser/387adf4c-243f-4051-a181-46798f4a46f4

  • headers Dict[str, str] (オプション)追加バージョン: v1.11#

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

  • slow_mo float (オプション)追加バージョン: v1.11#

    Playwright の操作を指定されたミリ秒数だけ遅くします。何が起こっているかを確認するのに役立ちます。デフォルトは 0 です。

  • timeout float (オプション)追加バージョン: v1.11#

    接続が確立されるまでの最大待ち時間 (ミリ秒)。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトが無効になります。

戻り値


launch

v1.9より前に追加 browserType.launch

ブラウザインスタンスを返します。

使用法

ignore_default_args を使用して、デフォルトの引数から --mute-audio を除外できます。

browser = playwright.chromium.launch( # or "firefox" or "webkit".
ignore_default_args=["--mute-audio"]
)

Chromiumのみ Playwright は Google Chrome または Microsoft Edge ブラウザの制御にも使用できますが、バンドルされている Chromium のバージョンで最適に動作します。他のバージョンで動作するという保証はありません。executable_path オプションは細心の注意を払って使用してください。

Chromium ではなく Google Chrome を使用する場合は、Chrome Canary または Dev Channel ビルドが推奨されます。

Google Chrome や Microsoft Edge のような標準ブラウザは、ビデオ再生にプロプライエタリなメディアコーデックを必要とするテストに適しています。Chromium と Chrome のその他の違いについては、この記事を参照してください。この記事では、Linux ユーザー向けの違いについて説明しています。

引数

  • args List[str] (オプション)#

    警告

    一部のカスタムブラウザ引数は Playwright の機能を損なう可能性があるため、自己責任で使用してください。

    ブラウザインスタンスに渡す追加の引数。Chromium のフラグのリストはこちらで確認できます。

  • channel str (オプション)#

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

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

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

  • chromium_sandbox bool (オプション)#

    Chromium のサンドボックスを有効にします。デフォルトは false です。

  • devtools bool (オプション)#

    非推奨

    代わりにデバッグツールを使用してください。

    Chromiumのみ 各タブのDeveloper Toolsパネルを自動的に開くかどうか。このオプションが true の場合、headless オプションは false に設定されます。

  • downloads_path Union[str, pathlib.Path] (オプション)#

    指定された場合、受け入れられたダウンロードはこのディレクトリにダウンロードされます。そうでない場合、一時ディレクトリが作成され、ブラウザが閉じられると削除されます。どちらの場合でも、ダウンロードは作成されたブラウザコンテキストが閉じられると削除されます。

  • env Dict[str, str | float | bool] (オプション)#

    ブラウザから見える環境変数を指定します。デフォルトは process.env です。

  • executable_path Union[str, pathlib.Path] (オプション)#

    バンドルされている実行可能ファイルの代わりに実行するブラウザ実行可能ファイルへのパスです。executable_path が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。Playwright はバンドルされている Chromium、Firefox、または WebKit でのみ動作することに注意してください。自己責任で使用してください。

  • firefox_user_prefs Dict[str, str | float | bool] (オプション)#

    Firefox のユーザー設定です。Firefox のユーザー設定の詳細については、about:config を参照してください。

  • handle_sighup bool (オプション)#

    SIGHUP シグナルでブラウザプロセスを閉じます。デフォルトは true です。

  • handle_sigint bool (オプション)#

    Ctrl-C でブラウザプロセスを閉じます。デフォルトは true です。

  • handle_sigterm bool (オプション)#

    SIGTERM シグナルでブラウザプロセスを閉じます。デフォルトは true です。

  • headless bool (オプション)#

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

  • ignore_default_args bool | List[str] (オプション)#

    true の場合、Playwright は独自の構成引数を渡さず、args からの引数のみを使用します。配列が指定された場合、指定されたデフォルト引数をフィルタリングします。危険なオプションですので、注意して使用してください。デフォルトは false です。

  • proxy Dict (オプション)#

    • server str

      すべてのリクエストに使用されるプロキシ。HTTP および SOCKS プロキシがサポートされています。例: http://myproxy.com:3128 または socks5://myproxy.com:3128。省略形 myproxy.com:3128 は HTTP プロキシと見なされます。

    • bypass str (オプション)

      プロキシをバイパスするオプションのカンマ区切りドメイン。例: ".com, chromium.org, .domain.com"

    • username str (オプション)

      HTTP プロキシが認証を必要とする場合に使用するオプションのユーザー名。

    • password str (オプション)

      HTTP プロキシが認証を必要とする場合に使用するオプションのパスワード。

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

  • slow_mo float (オプション)#

    Playwright の操作を指定されたミリ秒数だけ遅くします。何が起こっているかを確認するのに役立ちます。

  • timeout float (オプション)#

    ブラウザインスタンスが起動するまでの最大待ち時間 (ミリ秒)。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトが無効になります。

  • traces_dir Union[str, pathlib.Path] (オプション)#

    指定された場合、トレースはこのディレクトリに保存されます。

戻り値


launch_persistent_context

v1.9より前に追加 browserType.launch_persistent_context

永続ブラウザコンテキストインスタンスを返します。

user_data_dir にある永続ストレージを使用するブラウザを起動し、唯一のコンテキストを返します。このコンテキストを閉じると、ブラウザも自動的に閉じられます。

使用法

browser_type.launch_persistent_context(user_data_dir)
browser_type.launch_persistent_context(user_data_dir, **kwargs)

引数

  • user_data_dir Union[str, pathlib.Path]#

    Cookie やローカルストレージなどのブラウザセッションデータを保存するユーザーデータディレクトリへのパス。一時ディレクトリを作成するには、空の文字列を渡します。

    Chromium および Firefox の詳細については、こちらを参照してください。Chromium のユーザーデータディレクトリは、chrome://version で表示される「プロファイルパス」のディレクトリです。

    ブラウザは、同じユーザーデータディレクトリで複数のインスタンスを起動することを許可しないことに注意してください。

  • accept_downloads bool (オプション)#

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

  • args List[str] (オプション)#

    警告

    一部のカスタムブラウザ引数は Playwright の機能を損なう可能性があるため、自己責任で使用してください。

    ブラウザインスタンスに渡す追加の引数。Chromium のフラグのリストはこちらで確認できます。

  • base_url str (オプション)#

    page.goto()page.route()page.wait_for_url()page.expect_request()、または page.expect_response() を使用する場合、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 となります。
  • bypass_csp bool (オプション)#

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

  • channel str (オプション)#

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

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

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

  • chromium_sandbox bool (オプション)#

    Chromium のサンドボックスを有効にします。デフォルトは false です。

  • client_certificates List[Dict] (オプション)追加バージョン: 1.46#

    • origin str

      証明書が有効な正確なオリジン。オリジンには https プロトコル、ホスト名、オプションでポートが含まれます。

    • certPath Union[str, pathlib.Path] (オプション)

      PEM 形式の証明書ファイルへのパス。

    • cert bytes (オプション)

      PEM 形式の証明書の直接値。

    • keyPath Union[str, pathlib.Path] (オプション)

      PEM 形式の秘密鍵ファイルへのパス。

    • key bytes (オプション)

      PEM 形式の秘密鍵の直接値。

    • pfxPath Union[str, pathlib.Path] (オプション)

      PFX または PKCS12 エンコードされた秘密鍵および証明書チェーンファイルへのパス。

    • pfx bytes (オプション)

      PFX または PKCS12 エンコードされた秘密鍵および証明書チェーンの直接値。

    • passphrase str (オプション)

      秘密鍵 (PEM または PFX) のパスフレーズ。

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

    詳細

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

    macOS で WebKit を使用する場合、localhost にアクセスしてもクライアント証明書は取得されません。localhostlocal.playwright に置き換えることで動作させることができます。

  • color_scheme "light" | "dark" | "no-preference" | "null" (オプション)#

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

  • contrast "no-preference" | "more" | "null" (オプション)#

    'prefers-contrast' メディア機能をエミュレートします。サポートされる値は 'no-preference''more' です。詳細については page.emulate_media() を参照してください。'null' を渡すと、エミュレーションはシステムデフォルトにリセットされます。デフォルトは 'no-preference' です。

  • device_scale_factor float (オプション)#

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

  • devtools bool (オプション)#

    非推奨

    代わりにデバッグツールを使用してください。

    Chromiumのみ 各タブのDeveloper Toolsパネルを自動的に開くかどうか。このオプションが true の場合、headless オプションは false に設定されます。

  • downloads_path Union[str, pathlib.Path] (オプション)#

    指定された場合、受け入れられたダウンロードはこのディレクトリにダウンロードされます。そうでない場合、一時ディレクトリが作成され、ブラウザが閉じられると削除されます。どちらの場合でも、ダウンロードは作成されたブラウザコンテキストが閉じられると削除されます。

  • env Dict[str, str | float | bool] (オプション)#

    ブラウザから見える環境変数を指定します。デフォルトは process.env です。

  • executable_path Union[str, pathlib.Path] (オプション)#

    バンドルされている実行可能ファイルの代わりに実行するブラウザ実行可能ファイルへのパスです。executable_path が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。Playwright はバンドルされている Chromium、Firefox、または WebKit でのみ動作することに注意してください。自己責任で使用してください。

  • extra_http_headers Dict[str, str] (オプション)#

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

  • firefox_user_prefs Dict[str, str | float | bool] (オプション)追加バージョン: v1.40#

    Firefox のユーザー設定です。Firefox のユーザー設定の詳細については、about:config を参照してください。

  • forced_colors "active" | "none" | "null" (オプション)#

    'forced-colors' メディア機能をエミュレートします。サポートされる値は 'active''none' です。詳細については page.emulate_media() を参照してください。'null' を渡すと、エミュレーションはシステムデフォルトにリセットされます。デフォルトは 'none' です。

  • geolocation Dict (オプション)#

    • latitude float

      -90 から 90 の間の緯度。

    • longitude float

      -180 から 180 の間の経度。

    • accuracy float (オプション)

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

  • handle_sighup bool (オプション)#

    SIGHUP シグナルでブラウザプロセスを閉じます。デフォルトは true です。

  • handle_sigint bool (オプション)#

    Ctrl-C でブラウザプロセスを閉じます。デフォルトは true です。

  • handle_sigterm bool (オプション)#

    SIGTERM シグナルでブラウザプロセスを閉じます。デフォルトは true です。

  • has_touch bool (オプション)#

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

  • headless bool (オプション)#

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

  • http_credentials Dict (オプション)#

    • username str

    • password str

    • origin str (オプション)

      特定のオリジン (scheme://host
      :port) で HTTP 認証情報の送信を制限しますポート).

    • send "unauthorized" | "always" (オプション)

      このオプションは、対応する APIRequestContext から送信されたリクエストにのみ適用され、ブラウザから送信されたリクエストには影響しません。'always' - 基本認証情報を含む Authorization ヘッダーが各 API リクエストとともに送信されます。'unauthorized - 401 (Unauthorized) レスポンスと WWW-Authenticate ヘッダーが受信された場合にのみ認証情報が送信されます。デフォルトは 'unauthorized' です。

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

  • ignore_default_args bool | List[str] (オプション)#

    true の場合、Playwright は独自の構成引数を渡さず、args からの引数のみを使用します。配列が指定された場合、指定されたデフォルト引数をフィルタリングします。危険なオプションですので、注意して使用してください。デフォルトは false です。

  • ignore_https_errors bool (オプション)#

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

  • is_mobile bool (オプション)#

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

  • java_script_enabled bool (オプション)#

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

  • locale str (オプション)#

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

  • no_viewport bool (オプション)#

    固定ビューポートを強制せず、ヘッド付きモードでのウィンドウのリサイズを許可します。

  • offline bool (オプション)#

    ネットワークがオフラインであることをエミュレートするかどうか。デフォルトは false です。ネットワークエミュレーション の詳細はこちら。

  • permissions List[str] (オプション)#

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

  • proxy Dict (オプション)#

    • server str

      すべてのリクエストに使用されるプロキシ。HTTP および SOCKS プロキシがサポートされています。例: http://myproxy.com:3128 または socks5://myproxy.com:3128。省略形 myproxy.com:3128 は HTTP プロキシと見なされます。

    • bypass str (オプション)

      プロキシをバイパスするオプションのカンマ区切りドメイン。例: ".com, chromium.org, .domain.com"

    • username str (オプション)

      HTTP プロキシが認証を必要とする場合に使用するオプションのユーザー名。

    • password str (オプション)

      HTTP プロキシが認証を必要とする場合に使用するオプションのパスワード。

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

  • record_har_content "omit" | "embed" | "attach" (オプション)#

    リソースコンテンツ管理を制御するオプション設定。omit が指定された場合、コンテンツは永続化されません。attach が指定された場合、リソースは個別のファイルとして永続化され、これらのファイルはすべて HAR ファイルとともにアーカイブされます。デフォルトは embed で、HAR 仕様に従ってコンテンツを HAR ファイル内にインラインで保存します。

  • record_har_mode "full" | "minimal" (オプション)#

    minimal に設定すると、HAR からのルーティングに必要な情報のみが記録されます。これにより、HAR からのリプレイ時に使用されないサイズ、タイミング、ページ、Cookie、セキュリティ、その他の種類の HAR 情報は省略されます。デフォルトは full です。

  • record_har_omit_content bool (オプション)#

    HAR からリクエストコンテンツを省略するかどうかを制御するオプション設定。デフォルトは false です。

  • record_har_path Union[str, pathlib.Path] (オプション)#

    すべてのページに対して、ファイルシステム上の指定された HAR ファイルへの HAR 記録を有効にします。指定されていない場合、HAR は記録されません。HAR を保存するには、必ず browser_context.close() を呼び出してください。

  • record_har_url_filter str | Pattern (オプション)#

  • record_video_dir Union[str, pathlib.Path] (オプション)#

    すべてのページに対して、指定されたディレクトリへのビデオ録画を有効にします。指定されていない場合、ビデオは記録されません。ビデオを保存するには、必ず browser_context.close() を呼び出してください。

  • record_video_size Dict (オプション)#

    • width int

      ビデオフレームの幅。

    • height int

      ビデオフレームの高さ。

    記録されたビデオの寸法。指定されていない場合、サイズは 800x800 に収まるように縮小された viewport と同じになります。viewport が明示的に設定されていない場合、ビデオサイズはデフォルトで 800x450 になります。各ページの実際の画像は、指定されたサイズに収まるように必要に応じて縮小されます。

  • reduced_motion "reduce" | "no-preference" | "null" (オプション)#

    'prefers-reduced-motion' メディア機能をエミュレートします。サポートされる値は 'reduce''no-preference' です。詳細については page.emulate_media() を参照してください。'null' を渡すと、エミュレーションはシステムデフォルトにリセットされます。デフォルトは 'no-preference' です。

  • screen Dict (オプション)#

    • width int

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

    • height int

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

    Web ページ内で window.screen を介して利用可能な一貫したウィンドウ画面サイズをエミュレートします。viewport が設定されている場合にのみ使用されます。

  • service_workers "allow" | "block" (オプション)#

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

    • 'allow': Service Workers を登録できます。
    • 'block': Playwright は Service Worker のすべての登録をブロックします。
  • slow_mo float (オプション)#

    Playwright の操作を指定されたミリ秒数だけ遅くします。何が起こっているかを確認するのに役立ちます。

  • strict_selectors bool (オプション)#

    true に設定すると、このコンテキストで厳密セレクターモードが有効になります。厳密セレクターモードでは、単一のターゲット DOM 要素を意味するセレクターに対するすべての操作は、複数の要素がセレクターに一致する場合にエラーをスローします。このオプションは Locator API には影響しません (Locator は常に厳密です)。デフォルトは false です。厳密モードの詳細については Locator を参照してください。

  • timeout float (オプション)#

    ブラウザインスタンスが起動するまでの最大待ち時間 (ミリ秒)。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトが無効になります。

  • timezone_id str (オプション)#

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

  • traces_dir Union[str, pathlib.Path] (オプション)#

    指定された場合、トレースはこのディレクトリに保存されます。

  • user_agent str (オプション)#

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

  • viewport NoneType | Dict (オプション)#

    • width int

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

    • height int

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

    各ページに一貫したビューポートを設定します。デフォルトは 1280x720 のビューポートです。no_viewport は固定ビューポートを無効にします。ビューポートエミュレーション の詳細はこちら。

戻り値


プロパティ

executable_path

v1.9より前に追加 browserType.executable_path

Playwright がバンドルされたブラウザ実行可能ファイルを見つけることを想定しているパス。

使用法

browser_type.executable_path

戻り値


name

v1.9より前に追加 browserType.name

ブラウザ名を返します。例: 'chromium''webkit'、または 'firefox'

使用法

browser_type.name

戻り値