BrowserType
BrowserType は、特定のブラウザーインスタンスを起動したり、既存のインスタンスに接続したりするためのメソッドを提供します。以下は、Playwright を使用して自動化を駆動する典型的な例です。
using Microsoft.Playwright;
using System.Threading.Tasks;
class BrowserTypeExamples
{
public static async Task Run()
{
using var playwright = await Playwright.CreateAsync();
var chromium = playwright.Chromium;
var browser = await chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://www.bing.com");
// other actions
await browser.CloseAsync();
}
}
メソッド
ConnectAsync
v1.9 より前に追加このメソッドは、Node.js の BrowserType.launchServer
を介して作成された既存のブラウザーインスタンスに Playwright をアタッチします。
接続する Playwright インスタンスのメジャーバージョンとマイナーバージョンは、ブラウザーを起動する Playwright のバージョンと一致する必要があります (1.2.3 → 1.2.x と互換性があります)。
使用法
await BrowserType.ConnectAsync(wsEndpoint, options);
引数
-
接続先の Playwright ブラウザの websocket エンドポイント。このエンドポイントは
BrowserServer.wsEndpoint
経由で取得します。 -
options
BrowserTypeConnectOptions?
(任意)-
ExposeNetwork
string? (任意)追加: v1.37#このオプションは、接続元のクライアントで利用可能なネットワークを、接続先のブラウザーに公開します。カンマで区切られたルールのリストで構成されます。
利用可能なルール
- ホスト名パターン。例:
example.com
、*.org:99
、x.*.y.com
、*foo.org
。 - IP リテラル。例:
127.0.0.1
、0.0.0.0:99
、[::1]
、[0:0::1]:99
。 - ローカルループバックインターフェースに一致する
<loopback>
:localhost
、*.localhost
、127.0.0.1
、[::1]
。
一般的な例
- すべてのネットワークを公開するには
"*"
。 - localhost ネットワークを公開するには
"<loopback>"
。 - テスト/ステージング環境と localhost を公開するには
"*.test.internal-domain,*.staging.internal-domain,<loopback>"
。
- ホスト名パターン。例:
-
Headers
IDictionary?<string, string> (任意)追加: v1.11#WebSocket 接続リクエストとともに送信される追加の HTTP ヘッダー。任意。
-
SlowMo
[float]? (任意)追加: v1.10#指定されたミリ秒数だけ Playwright の操作を遅くします。何が起こっているかを確認するのに役立ちます。デフォルトは 0 です。
-
Timeout
[float]? (任意)追加: v1.10#接続が確立されるまで待機する最大時間 (ミリ秒単位)。デフォルトは
0
(タイムアウトなし) です。
-
戻り値
ConnectOverCDPAsync
追加: v1.9このメソッドは、Chrome DevTools Protocol を使用して、既存のブラウザーインスタンスに Playwright をアタッチします。
デフォルトのブラウザーコンテキストには、Browser.Contexts 経由でアクセスできます。
Chrome DevTools Protocol 経由の接続は、Chromium ベースのブラウザーでのみサポートされています。
この接続は、BrowserType.ConnectAsync() 経由の Playwright プロトコル接続よりも忠実度が大幅に低くなります。問題が発生している場合、または高度な機能を使用しようとしている場合は、BrowserType.ConnectAsync() を使用することをお勧めします。
使用法
var browser = await playwright.Chromium.ConnectOverCDPAsync("http://localhost:9222");
var defaultContext = browser.Contexts[0];
var page = defaultContext.Pages[0];
引数
-
接続先の CDP websocket エンドポイントまたは http URL。例:
http://localhost:9222/
またはws://127.0.0.1:9222/devtools/browser/387adf4c-243f-4051-a181-46798f4a46f4
。 -
options
BrowserTypeConnectOverCDPOptions?
(任意)
戻り値
ExecutablePath
v1.9 より前に追加Playwright がバンドルされたブラウザーの実行可能ファイルを見つけることを期待するパス。
使用法
BrowserType.ExecutablePath
戻り値
LaunchAsync
v1.9 より前に追加ブラウザーインスタンスを返します。
使用法
IgnoreDefaultArgs を使用して、デフォルトの引数から --mute-audio
を除外できます。
var browser = await playwright.Chromium.LaunchAsync(new() {
IgnoreDefaultArgs = new[] { "--mute-audio" }
});
Chromium のみ Playwright は Google Chrome または Microsoft Edge ブラウザーを制御するためにも使用できますが、バンドルされている Chromium のバージョンで最適に動作します。他のバージョンで動作する保証はありません。ExecutablePath オプションは、細心の注意を払って使用してください。
(Chromium ではなく)Google Chrome が推奨される場合は、Chrome Canary または Dev Channel ビルドが推奨されます。
Google Chrome や Microsoft Edge などのストックブラウザーは、ビデオ再生にプロプライエタリなメディアコーデックを必要とするテストに適しています。Chromium と Chrome のその他の違いについては、この記事を参照してください。Linux ユーザー向けの違いについては、この記事で説明しています。
引数
options
BrowserTypeLaunchOptions?
(任意)-
Args
IEnumerable?<string> (任意)#警告カスタムブラウザー引数の使用は自己責任で行ってください。一部の引数は Playwright の機能を損なう可能性があります。
ブラウザーインスタンスに渡す追加の引数。Chromium フラグのリストはこちらにあります。
-
ブラウザの配布チャネル。
新しいヘッドレスモードを有効にするには、"chromium" を使用してください (新しいヘッドレスモードを有効にする)。
ブランド付きの Google Chrome および Microsoft Edge を使用するには、"chrome"、"chrome-beta"、"chrome-dev"、"chrome-canary"、"msedge"、"msedge-beta"、"msedge-dev"、または "msedge-canary" を使用してください。
-
Chromium サンドボックスを有効にします。デフォルトは
false
です。 -
非推奨
代わりに デバッグツール を使用してください。
Chromium のみ 各タブに対して開発者ツールパネルを自動的に開くかどうか。このオプションが
true
の場合、Headless オプションはfalse
に設定されます。 -
指定した場合、承認されたダウンロードはこのディレクトリにダウンロードされます。それ以外の場合は、一時ディレクトリが作成され、ブラウザーが閉じられるときに削除されます。いずれの場合も、ダウンロードは作成されたブラウザーコンテキストが閉じられると削除されます。
-
Env
IDictionary?<string, string> (任意)#ブラウザーに表示される環境変数を指定します。デフォルトは
process.env
です。 -
バンドルされているものではなく、実行するブラウザー実行可能ファイルへのパス。ExecutablePath が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。Playwright はバンドルされた Chromium、Firefox、または WebKit でのみ動作することに注意してください。自己責任で使用してください。
-
FirefoxUserPrefs
IDictionary?<string, [object]> (任意)#Firefox のユーザー設定。Firefox のユーザー設定の詳細については、
about:config
を参照してください。 -
SIGHUP でブラウザープロセスを閉じます。デフォルトは
true
です。 -
Ctrl+C でブラウザープロセスを閉じます。デフォルトは
true
です。 -
SIGTERM でブラウザープロセスを閉じます。デフォルトは
true
です。 -
ブラウザーをヘッドレスモードで実行するかどうか。Chromium および Firefox の詳細。デフォルトは、Devtools オプションが
true
でない限り、true
です。 -
IgnoreAllDefaultArgs
bool? (任意)追加: v1.9#true
の場合、Playwright は独自の設定引数を渡さず、Args からの引数のみを使用します。危険なオプションです。注意して使用してください。デフォルトはfalse
です。 -
IgnoreDefaultArgs
IEnumerable?<string> (任意)#true
の場合、Playwright は独自の設定引数を渡さず、Args からの引数のみを使用します。危険なオプションです。注意して使用してください。 -
Proxy
Proxy? (任意)#-
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 プロキシが認証を必要とする場合に使用するオプションのパスワード。
ネットワークプロキシ設定。
-
-
SlowMo
[float]? (任意)#指定されたミリ秒数だけ Playwright の操作を遅くします。何が起こっているかを確認するのに役立ちます。
-
Timeout
[float]? (任意)#ブラウザーインスタンスが起動するまで待機する最大時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。 -
指定した場合、トレースはこのディレクトリに保存されます。
-
戻り値
LaunchPersistentContextAsync
v1.9 より前に追加永続的なブラウザーコンテキストインスタンスを返します。
userDataDir にある永続ストレージを使用するブラウザーを起動し、唯一のコンテキストを返します。このコンテキストを閉じると、ブラウザーも自動的に閉じられます。
使用法
await BrowserType.LaunchPersistentContextAsync(userDataDir, options);
引数
-
Cookie やローカルストレージなどのブラウザーセッションデータを保存するユーザーデータディレクトリへのパス。Chromium および Firefox の詳細。Chromium のユーザーデータディレクトリは、
chrome://version
に表示される「プロファイルパス」の親ディレクトリであることに注意してください。代わりに一時ディレクトリを使用するには、空の文字列を渡します。 -
options
BrowserTypeLaunchPersistentContextOptions?
(任意)-
すべてのアタッチメントを自動的にダウンロードするかどうか。デフォルトは、すべてのダウンロードが承認される
true
です。 -
Args
IEnumerable?<string> (任意)#警告カスタムブラウザー引数の使用は自己責任で行ってください。一部の引数は Playwright の機能を損なう可能性があります。
ブラウザーインスタンスに渡す追加の引数。Chromium フラグのリストはこちらにあります。
-
Page.GotoAsync()、Page.RouteAsync()、Page.WaitForURLAsync()、Page.RunAndWaitForRequestAsync()、または Page.RunAndWaitForResponseAsync() を使用する場合、対応する 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
になります
- baseURL:
-
ページの Content-Security-Policy のバイパスを切り替えます。デフォルトは
false
です。 -
ブラウザの配布チャネル。
新しいヘッドレスモードを有効にするには、"chromium" を使用してください (新しいヘッドレスモードを有効にする)。
ブランド付きの Google Chrome および Microsoft Edge を使用するには、"chrome"、"chrome-beta"、"chrome-dev"、"chrome-canary"、"msedge"、"msedge-beta"、"msedge-dev"、または "msedge-canary" を使用してください。
-
Chromium サンドボックスを有効にします。デフォルトは
false
です。 -
ClientCertificates
IEnumerable?<ClientCertificates> (任意)追加: 1.46#-
Origin
string証明書が有効な正確なオリジン。オリジンには、
https
プロトコル、ホスト名、およびオプションでポートが含まれます。 -
CertPath
string? (任意)PEM 形式の証明書を含むファイルへのパス。
-
Cert
byte[]? (任意)PEM 形式の証明書の直接値。
-
KeyPath
string? (任意)PEM 形式の秘密鍵を含むファイルへのパス。
-
Key
byte[]? (任意)PEM 形式の秘密鍵の直接値。
-
PfxPath
string? (任意)PFX または PKCS12 エンコードされた秘密鍵と証明書チェーンへのパス。
-
Pfx
byte[]? (任意)PFX または PKCS12 エンコードされた秘密鍵と証明書チェーンの直接値。
-
Passphrase
string? (任意)秘密鍵 (PEM または PFX) のパスフレーズ。
TLS クライアント認証により、サーバーはクライアント証明書を要求して検証できます。
詳細
使用するクライアント証明書の配列。各証明書オブジェクトは、
certPath
とkeyPath
の両方、単一のpfxPath
、または対応する直接値の同等物 (cert
とkey
、またはpfx
) のいずれかを持っている必要があります。オプションで、証明書が暗号化されている場合はpassphrase
プロパティを指定する必要があります。origin
プロパティは、証明書が有効なリクエストオリジンに正確に一致するように指定する必要があります。注macOS で WebKit を使用する場合、
localhost
にアクセスしてもクライアント証明書は取得されません。localhost
をlocal.playwright
に置き換えることで動作させることができます。 -
-
ColorScheme
enum ColorScheme { Light, Dark, NoPreference, Null }?
(任意)#prefers-colors-scheme メディア機能をエミュレートします。サポートされている値は
'light'
と'dark'
です。詳細については、Page.EmulateMediaAsync() を参照してください。'null'
を渡すと、エミュレーションがシステムデフォルトにリセットされます。デフォルトは'light'
です。 -
Contrast
enum Contrast { NoPreference, More, Null }?
(任意)#'prefers-contrast'
メディア機能をエミュレートします。サポートされている値は'no-preference'
、'more'
です。詳細については、Page.EmulateMediaAsync() を参照してください。'null'
を渡すと、エミュレーションがシステムデフォルトにリセットされます。デフォルトは'no-preference'
です。 -
DeviceScaleFactor
[float]? (任意)#デバイススケールファクター (dpr と考えることができます) を指定します。デフォルトは
1
です。デバイススケールファクターを使用したデバイスのエミュレートの詳細を参照してください。 -
非推奨
代わりに デバッグツール を使用してください。
Chromium のみ 各タブに対して開発者ツールパネルを自動的に開くかどうか。このオプションが
true
の場合、Headless オプションはfalse
に設定されます。 -
指定した場合、承認されたダウンロードはこのディレクトリにダウンロードされます。それ以外の場合は、一時ディレクトリが作成され、ブラウザーが閉じられるときに削除されます。いずれの場合も、ダウンロードは作成されたブラウザーコンテキストが閉じられると削除されます。
-
Env
IDictionary?<string, string> (任意)#ブラウザーに表示される環境変数を指定します。デフォルトは
process.env
です。 -
バンドルされているものではなく、実行するブラウザー実行可能ファイルへのパス。ExecutablePath が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。Playwright はバンドルされた Chromium、Firefox、または WebKit でのみ動作することに注意してください。自己責任で使用してください。
-
ExtraHTTPHeaders
IDictionary?<string, string> (任意)#すべてのリクエストとともに送信される追加の HTTP ヘッダーを含むオブジェクト。デフォルトは none です。
-
FirefoxUserPrefs
IDictionary?<string, [object]> (任意)追加: v1.40#Firefox のユーザー設定。Firefox のユーザー設定の詳細については、
about:config
を参照してください。 -
ForcedColors
enum ForcedColors { Active, None, Null }?
(任意)#'forced-colors'
メディア機能をエミュレートします。サポートされている値は'active'
、'none'
です。詳細については、Page.EmulateMediaAsync() を参照してください。'null'
を渡すと、エミュレーションがシステムデフォルトにリセットされます。デフォルトは'none'
です。 -
Geolocation
Geolocation? (任意)#-
Latitude
[float]-90 から 90 の間の緯度。
-
Longitude
[float]-180 から 180 の間の経度。
-
Accuracy
[float]? (任意)負でない精度値。デフォルトは
0
です。
-
-
SIGHUP でブラウザープロセスを閉じます。デフォルトは
true
です。 -
Ctrl+C でブラウザープロセスを閉じます。デフォルトは
true
です。 -
SIGTERM でブラウザープロセスを閉じます。デフォルトは
true
です。 -
ビューポートがタッチイベントをサポートするかどうかを指定します。デフォルトは false です。モバイルエミュレーションの詳細を参照してください。
-
ブラウザーをヘッドレスモードで実行するかどうか。Chromium および Firefox の詳細。デフォルトは、Devtools オプションが
true
でない限り、true
です。 -
HttpCredentials
HttpCredentials? (任意)#-
Username
string -
Password
string -
Origin
string? (任意)特定のオリジン (scheme://host:port).
-
Send
enum HttpCredentialsSend { Unauthorized, Always }?
(任意)このオプションは、対応する APIRequestContext から送信されたリクエストにのみ適用され、ブラウザーから送信されたリクエストには影響しません。
'always'
- 基本認証資格情報を含むAuthorization
ヘッダーが各 API リクエストとともに送信されます。'unauthorized
- 資格情報は、WWW-Authenticate
ヘッダーを含む 401 (Unauthorized) レスポンスを受信した場合にのみ送信されます。デフォルトは'unauthorized'
です。
HTTP 認証の資格情報。オリジンが指定されていない場合、ユーザー名とパスワードは、未承認のレスポンス時に任意のサーバーに送信されます。
-
-
IgnoreAllDefaultArgs
bool? (任意)追加: v1.9#true
の場合、Playwright は独自の設定引数を渡さず、Args からの引数のみを使用します。危険なオプションです。注意して使用してください。デフォルトはfalse
です。 -
IgnoreDefaultArgs
IEnumerable?<string> (任意)#true
の場合、Playwright は独自の設定引数を渡さず、Args の引数のみを使用します。危険なオプションです。注意して使用してください。 -
ネットワークリクエスト送信時に HTTPS エラーを無視するかどうか。デフォルトは
false
です。 -
meta viewport
タグを考慮し、タッチイベントを有効にするかどうか。isMobile
はデバイスの一部であるため、手動で設定する必要はありません。デフォルトはfalse
で、Firefox ではサポートされていません。詳細については、モバイルエミュレーション を参照してください。 -
コンテキストで JavaScript を有効にするかどうか。デフォルトは
true
です。詳細については、JavaScript の無効化 を参照してください。 -
ユーザーロケールを指定します(例:
en-GB
、de-DE
など)。ロケールは、navigator.language
の値、Accept-Language
リクエストヘッダーの値、および数値と日付の書式設定ルールに影響します。デフォルトはシステムデフォルトロケールです。エミュレーションの詳細については、エミュレーションガイド を参照してください。 -
ネットワークがオフラインの状態をエミュレートするかどうか。デフォルトは
false
です。詳細については、ネットワークエミュレーション を参照してください。 -
Permissions
IEnumerable?<string> (任意)#このコンテキスト内のすべてのページに付与する権限のリスト。詳細については、BrowserContext.GrantPermissionsAsync() を参照してください。デフォルトはなし。
-
Proxy
Proxy? (任意)#-
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 プロキシが認証を必要とする場合に使用するオプションのパスワード。
ネットワークプロキシ設定。
-
-
RecordHarContent
enum HarContentPolicy { Omit, Embed, Attach }?
(任意)#リソースコンテンツ管理を制御するためのオプション設定。
omit
を指定すると、コンテンツは永続化されません。attach
を指定すると、リソースは個別のファイルとして永続化され、これらのファイルはすべて HAR ファイルとともにアーカイブされます。デフォルトはembed
で、HAR 仕様に従ってコンテンツを HAR ファイルにインラインで保存します。 -
RecordHarMode
enum HarMode { Full, Minimal }?
(任意)#minimal
に設定すると、HAR からのルーティングに必要な情報のみを記録します。これにより、HAR から再生する際に使用されないサイズ、タイミング、ページ、クッキー、セキュリティ、およびその他のタイプの HAR 情報が省略されます。デフォルトはfull
です。 -
RecordHarOmitContent
bool? (任意)#HAR からリクエストコンテンツを省略するかどうかを制御するためのオプション設定。デフォルトは
false
です。 -
ファイルシステムの指定された HAR ファイルに、すべてのページの HAR 記録を有効にします。指定しない場合、HAR は記録されません。HAR を保存するには、必ず BrowserContext.CloseAsync() を呼び出してください。
-
RecordHarUrlFilter|RecordHarUrlFilterRegex
string? | Regex? (任意)# -
指定されたディレクトリに、すべてのページのビデオ記録を有効にします。指定しない場合、ビデオは記録されません。ビデオを保存するには、必ず BrowserContext.CloseAsync() を呼び出してください。
-
RecordVideoSize
RecordVideoSize? (任意)#記録されたビデオの寸法。指定しない場合、サイズは
viewport
を 800x800 に収まるように縮小したものと同じになります。viewport
が明示的に構成されていない場合、ビデオサイズはデフォルトで 800x450 になります。各ページの実際の画像は、必要に応じて指定されたサイズに合うように縮小されます。 -
ReducedMotion
enum ReducedMotion { Reduce, NoPreference, Null }?
(任意)#'prefers-reduced-motion'
メディア機能をエミュレートします。サポートされている値は、'reduce'
、'no-preference'
です。詳細については、Page.EmulateMediaAsync() を参照してください。'null'
を渡すと、エミュレーションはシステムデフォルトにリセットされます。デフォルトは'no-preference'
です。 -
ScreenSize
ScreenSize? (任意)#window.screen
を介して Web ページ内で利用可能な一貫したウィンドウ画面サイズをエミュレートします。ViewportSize が設定されている場合にのみ使用されます。 -
ServiceWorkers
enum ServiceWorkerPolicy { Allow, Block }?
(任意)#サイトが Service Worker を登録できるようにするかどうか。デフォルトは
'allow'
です。'allow'
: Service Worker を登録できます。'block'
: Playwright は Service Worker のすべての登録をブロックします。
-
SlowMo
[float]? (任意)#指定されたミリ秒数だけ Playwright の操作を遅くします。何が起こっているかを確認するのに役立ちます。
-
true に設定すると、このコンテキストで strict selectors モードが有効になります。strict selectors モードでは、単一のターゲット DOM 要素を意味するセレクターに対するすべての操作は、複数の要素がセレクターに一致する場合に例外をスローします。このオプションは、Locator API には影響しません (Locator は常に strict です)。デフォルトは
false
です。strict モードの詳細については、Locator を参照してください。 -
Timeout
[float]? (任意)#ブラウザーインスタンスが起動するまで待機する最大時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。 -
コンテキストのタイムゾーンを変更します。サポートされているタイムゾーン ID のリストについては、ICU's metaZones.txt を参照してください。デフォルトはシステムのタイムゾーンです。
-
指定した場合、トレースはこのディレクトリに保存されます。
-
このコンテキストで使用する特定のユーザーエージェント。
-
ViewportSize
ViewportSize? (任意)#各ページの一貫したビューポートをエミュレートします。デフォルトは 1280x720 のビューポートです。一貫したビューポートのエミュレーションを無効にするには、
ViewportSize.NoViewport
を使用します。詳細については、ビューポートエミュレーション を参照してください。注ViewportSize.NoViewport
値は、デフォルトのプリセットからオプトアウトし、ビューポートをオペレーティングシステムによって定義されたホストウィンドウサイズに依存させます。これにより、テストの実行が非決定的になります。
-
戻り値
名前
v1.9 より前に追加ブラウザ名を返します。例: 'chromium'
、'webkit'
、'firefox'
。
使用法
BrowserType.Name
戻り値