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);
引数
-
wsEndpoint
string追加バージョン: v1.10#接続する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("https://:9222");
var defaultContext = browser.Contexts[0];
var page = defaultContext.Pages[0];
引数
-
endpointURL
string追加バージョン: v1.11#接続先のCDP WebSocketエンドポイントまたはHTTP URL。例:
https://: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より前に追加ブラウザインスタンスを返します。
使用法
デフォルトの引数から--mute-audio
を除外するには、IgnoreDefaultArgsを使用できます。
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の詳細。デフォルトは
true
ですが、Devtoolsオプションが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);
引数
-
クッキーやローカルストレージなどのブラウザセッションデータを保存するユーザーデータディレクトリへのパス。一時ディレクトリを作成するには空の文字列を渡します。
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:
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
になります
- baseURL:
-
ページのコンテンツセキュリティポリシーのバイパスを切り替えます。デフォルトは
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ヘッダーを含むオブジェクト。デフォルトはなしです。
-
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の詳細。デフォルトは
true
ですが、Devtoolsオプションがtrue
の場合は異なります。 -
HttpCredentials
HttpCredentials? (任意)#-
Username
string -
Password
string -
Origin
string? (任意)特定のオリジン(scheme://host:port).
-
Send
enum HttpCredentialsSend { Unauthorized, Always }?
(任意)このオプションは、対応するAPIRequestContextから送信されたリクエストにのみ適用され、ブラウザから送信されたリクエストには影響しません。
'always'
- 各APIリクエストに基本認証資格情報を含むAuthorization
ヘッダーが送信されます。'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? (任意)#録画されたビデオの寸法。指定されていない場合、サイズは800x800に収まるように
viewport
を縮小したものと同じになります。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 }?
(任意)#サイトがサービスワーカーを登録することを許可するかどうか。デフォルトは
'allow'
です。'allow'
: Service Workerを登録できます。'block'
: PlaywrightはService Workerのすべての登録をブロックします。
-
SlowMo
[float]? (任意)#指定されたミリ秒数だけPlaywrightの操作を遅くします。何が起きているかを確認するのに役立ちます。
-
true
に設定すると、このコンテキストで厳密セレクターモードが有効になります。厳密セレクターモードでは、単一のターゲットDOM要素を意味するセレクターに対するすべての操作は、複数の要素がセレクターに一致する場合にエラーをスローします。このオプションは、いかなる Locator API にも影響を与えません (Locator は常に厳密です)。デフォルトはfalse
です。厳密モードの詳細については、Locator を参照してください。 -
Timeout
[float]? (任意)#ブラウザインスタンスの起動を待機する最大時間(ミリ秒単位)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。 -
コンテキストのタイムゾーンを変更します。サポートされているタイムゾーンIDのリストについては、ICUのmetaZones.txt を参照してください。デフォルトはシステムのタイムゾーンです。
-
指定した場合、トレースはこのディレクトリに保存されます。
-
このコンテキストで使用する特定のユーザーエージェント。
-
ViewportSize
ViewportSize? (任意)#各ページのビューポートを一貫してエミュレートします。デフォルトは1280x720のビューポートです。一貫したビューポートエミュレーションを無効にするには、
ViewportSize.NoViewport
を使用します。ビューポートエミュレーション の詳細については、こちらをご覧ください。注記ViewportSize.NoViewport
の値は、デフォルトのプリセットから外れ、ビューポートがオペレーティングシステムによって定義されたホストウィンドウのサイズに依存するようにします。これにより、テストの実行が非決定論的になります。
-
戻り値
Name
v1.9より前に追加ブラウザ名を返します。例: 'chromium'
、'webkit'
、または 'firefox'
。
使用法
BrowserType.Name
戻り値