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

Page

Page」は、Browser 内の単一のタブ、または Chromium の 拡張機能バックグラウンドページ と対話するためのメソッドを提供します。1つの Browser インスタンスには、複数の Page インスタンスが含まれる場合があります。

この例では、ページを作成し、URLに移動し、スクリーンショットを保存します。

import com.microsoft.playwright.*;

public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch();
BrowserContext context = browser.newContext();
Page page = context.newPage();
page.navigate("https://example.com");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("screenshot.png")));
browser.close();
}
}
}

Page クラスは、Node のネイティブな EventEmitter メソッド(ononceremoveListenerなど)を使用して処理できる様々なイベント(下記参照)を発行します。

この例では、単一のページ load イベントのメッセージをログに記録します。

page.onLoad(p -> System.out.println("Page loaded!"));

イベントの購読を解除するには、removeListener メソッドを使用します。

Consumer<Request> logRequest = interceptedRequest -> {
System.out.println("A request was made: " + interceptedRequest.url());
};
page.onRequest(logRequest);
// Sometime later...
page.offRequest(logRequest);

メソッド

addInitScript

v1.9より前に追加 page.addInitScript

以下のシナリオのいずれかで評価されるスクリプトを追加します。

  • ページがナビゲートされるたび。
  • 子フレームがアタッチまたはナビゲートされるたび。この場合、スクリプトは新しくアタッチされたフレームのコンテキストで評価されます。

スクリプトは、ドキュメントが作成された後、そのスクリプトが実行される前に評価されます。これは、JavaScript 環境を修正する場合に役立ちます(例:Math.randomのシード)。

使用法

ページがロードされる前に Math.random をオーバーライドする例

// preload.js
Math.random = () => 42;
// In your playwright script, assuming the preload.js file is in same directory
page.addInitScript(Paths.get("./preload.js"));
注釈

BrowserContext.addInitScript() および Page.addInitScript() 経由でインストールされた複数のスクリプトの評価順序は定義されていません。

引数

  • script String | Path#

    ブラウザコンテキスト内のすべてのページで評価されるスクリプトです。

戻り値


addLocatorHandler

v1.42で追加 page.addLocatorHandler

ウェブページをテストする際、予期しない「サインアップ」ダイアログなどのオーバーレイが表示され、ボタンクリックなどの自動化したいアクションをブロックすることがあります。これらのオーバーレイは、常に同じ方法や同じタイミングで表示されるわけではないため、自動テストでの処理が難しい場合があります。

このメソッドでは、オーバーレイが表示されていることを検出すると起動する、ハンドラと呼ばれる特別な関数を設定できます。ハンドラの役割はオーバーレイを削除し、オーバーレイが存在しなかったかのようにテストを続行できるようにすることです。

留意事項

  • オーバーレイが予測通りに表示される場合は、Page.addLocatorHandler() を使用する代わりに、テストで明示的に待機し、通常のテストフローの一部としてそれを閉じることが推奨されます。
  • Playwrightは、操作可能性チェックを必要とするアクションを実行する前、または再試行する前、あるいは自動待機アサーションチェックを実行する前に、毎回オーバーレイを確認します。オーバーレイが表示されている場合、Playwrightはまずハンドラを呼び出し、その後アクション/アサーションを続行します。ハンドラはアクション/アサーションを実行した場合にのみ呼び出されることに注意してください。オーバーレイが表示されてもアクションを実行しない場合、ハンドラはトリガーされません。
  • ハンドラの実行後、Playwright はハンドラをトリガーしたオーバーレイがもう表示されていないことを確認します。setNoWaitAfter を使用してこの動作を無効にできます。
  • ハンドラの実行時間は、ハンドラを実行したアクション/アサーションのタイムアウトに加算されます。ハンドラの実行に時間がかかりすぎると、タイムアウトを引き起こす可能性があります。
  • 複数のハンドラを登録できます。ただし、一度に実行されるハンドラは1つだけです。ハンドラ内のアクションが他のハンドラに依存しないようにしてください。
警告

ハンドラの実行は、テスト中にページのステータスを変更します。例えば、現在フォーカスされている要素を変更したり、マウスを移動させたりします。ハンドラの実行後に実行されるアクションが自己完結しており、フォーカスやマウスの状態が変更されていないことに依存しないようにしてください。

例えば、Locator.focus() の後に Keyboard.press() を呼び出すテストを考えてみてください。もしハンドラがこれら2つのアクションの間にボタンをクリックすると、フォーカスされた要素が間違っている可能性が高く、意図しない要素でキー入力が行われます。この問題を避けるために、代わりに Locator.press() を使用してください。

もう1つの例は、Mouse.move() の後に Mouse.down() が続く一連のマウスアクションです。ここでも、これら2つのアクションの間にハンドラが実行されると、マウスダウン中にマウスの位置が誤った状態になります。ハンドラによって状態が変更されないことに依存しない、Locator.click() のような自己完結型のアクションを優先してください。

使用法

「ニュースレター購読」ダイアログが表示されたときにそれを閉じる例

// Setup the handler.
page.addLocatorHandler(page.getByText("Sign up to the newsletter"), () -> {
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("No thanks")).click();
});

// Write the test as usual.
page.navigate("https://example.com");
page.getByRole("button", Page.GetByRoleOptions().setName("Start here")).click();

「セキュリティ詳細の確認」ページが表示されたときにそれをスキップする例

// Setup the handler.
page.addLocatorHandler(page.getByText("Confirm your security details"), () -> {
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Remind me later")).click();
});

// Write the test as usual.
page.navigate("https://example.com");
page.getByRole("button", Page.GetByRoleOptions().setName("Start here")).click();

すべての操作可能性チェックでカスタムコールバックを使用する例。常に表示される <body> ロケーターを使用するため、ハンドラはすべての操作可能性チェックの前に呼び出されます。ハンドラが <body> 要素を非表示にしないため、setNoWaitAfter を指定することが重要です。

// Setup the handler.
page.addLocatorHandler(page.locator("body"), () -> {
page.evaluate("window.removeObstructionsForTestIfNeeded()");
}, new Page.AddLocatorHandlerOptions().setNoWaitAfter(true));

// Write the test as usual.
page.navigate("https://example.com");
page.getByRole("button", Page.GetByRoleOptions().setName("Start here")).click();

ハンドラは元のロケーターを引数として受け取ります。setTimes を設定することで、呼び出し回数に応じてハンドラを自動的に削除することもできます。

page.addLocatorHandler(page.getByLabel("Close"), locator -> {
locator.click();
}, new Page.AddLocatorHandlerOptions().setTimes(1));

引数

  • locator Locator#

    ハンドラをトリガーするロケーター。

  • handler Consumer<Locator>#

    ロケーターが表示されたら実行される関数です。この関数は、クリックなどのアクションをブロックする要素を取り除く必要があります。

  • options Page.AddLocatorHandlerOptions (オプション)

    • setNoWaitAfter boolean (オプション)v1.44で追加#

      デフォルトでは、ハンドラの呼び出し後、Playwrightはオーバーレイが非表示になるまで待機し、その後でハンドラをトリガーしたアクション/アサーションを続行します。このオプションを使用すると、この動作をオプトアウトし、ハンドラ実行後もオーバーレイが表示されたままになるようにできます。

    • setTimes int (オプション)v1.44で追加#

      このハンドラが呼び出される最大回数を指定します。デフォルトでは無制限です。

戻り値


addScriptTag

v1.9より前に追加 page.addScriptTag

指定されたURLまたはコンテンツを持つ <script> タグをページに追加します。スクリプトのonloadが発火したとき、またはスクリプトコンテンツがフレームに注入されたときに、追加されたタグを返します。

使用法

Page.addScriptTag();
Page.addScriptTag(options);

引数

  • options Page.AddScriptTagOptions (オプション)
    • setContent String (オプション)#

      フレームに注入する生のJavaScriptコンテンツ。

    • setPath Path (オプション)#

      フレームに注入するJavaScriptファイルのパス。pathが相対パスの場合、現在の作業ディレクトリを基準に解決されます。

    • setType String (オプション)#

      スクリプトの種類。JavaScript ES6モジュールをロードするには「module」を使用します。詳細については、scriptを参照してください。

    • setUrl String (オプション)#

      追加するスクリプトのURL。

戻り値


addStyleTag

v1.9より前に追加 page.addStyleTag

指定されたURLを持つ <link rel="stylesheet"> タグ、またはコンテンツを持つ <style type="text/css"> タグをページに追加します。スタイルシートのonloadが発火したとき、またはCSSコンテンツがフレームに注入されたときに、追加されたタグを返します。

使用法

Page.addStyleTag();
Page.addStyleTag(options);

引数

  • options Page.AddStyleTagOptions (オプション)
    • setContent String (オプション)#

      フレームに注入する生のCSSコンテンツ。

    • setPath Path (オプション)#

      フレームに注入するCSSファイルのパス。pathが相対パスの場合、現在の作業ディレクトリを基準に解決されます。

    • setUrl String (オプション)#

      <link> タグのURL。

戻り値


bringToFront

v1.9より前に追加 page.bringToFront

ページを前面に表示します (タブをアクティブ化します)。

使用法

Page.bringToFront();

戻り値


close

v1.9より前に追加 page.close

setRunBeforeUnloadfalse の場合、アンロードハンドラは実行されず、ページが閉じるまで待機します。setRunBeforeUnloadtrue の場合、メソッドはアンロードハンドラを実行しますが、ページが閉じるのを待機し**ません**。

デフォルトでは、page.close()beforeunload ハンドラを**実行しません**。

注釈

setRunBeforeUnload が true として渡された場合、beforeunload ダイアログが呼び出される可能性があり、それは Page.onDialog(handler) イベントを介して手動で処理する必要があります。

使用法

Page.close();
Page.close(options);

引数

  • options Page.CloseOptions (オプション)
    • setReason String (オプション)v1.40で追加#

      ページ閉じによって中断された操作に報告される理由。

    • setRunBeforeUnload boolean (オプション)#

      デフォルトは false です。before unload ページハンドラを実行するかどうか。

戻り値


content

v1.9より前に追加 page.content

ドキュメントタイプを含む、ページの完全なHTMLコンテンツを取得します。

使用法

Page.content();

戻り値


context

v1.9より前に追加 page.context

ページが属するブラウザコンテキストを取得します。

使用法

Page.context();

戻り値


dragAndDrop

v1.13で追加 page.dragAndDrop

このメソッドは、ソース要素をターゲット要素にドラッグします。最初にソース要素に移動し、mousedown を実行し、次にターゲット要素に移動して mouseup を実行します。

使用法

page.dragAndDrop("#source", "#target");
// or specify exact positions relative to the top-left corners of the elements:
page.dragAndDrop("#source", "#target", new Page.DragAndDropOptions()
.setSourcePosition(34, 7).setTargetPosition(10, 20));

引数

  • source String#

    ドラッグする要素を検索するためのセレクタ。セレクタを満たす要素が複数ある場合、最初の要素が使用されます。

  • target String#

    ドロップ先の要素を検索するためのセレクタ。セレクタを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.DragAndDropOptions (オプション)

    • setForce boolean (オプション)#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setSourcePosition SourcePosition (オプション)v1.14で追加#

      要素のパディングボックスの左上隅を基準としたこの点で、ソース要素をクリックします。指定しない場合、要素の表示されているいずれかの点が使用されます。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTargetPosition TargetPosition (オプション)v1.14で追加#

      要素のパディングボックスの左上隅を基準としたこの点で、ターゲット要素にドロップします。指定しない場合、要素の表示されているいずれかの点が使用されます。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setTrial boolean (オプション)#

      設定されている場合、このメソッドは 操作可能性 チェックのみを実行し、アクションはスキップします。デフォルトは false です。要素がアクションを実行する準備が整うまで待機するが、実際には実行しない場合に役立ちます。

戻り値


emulateMedia

v1.9より前に追加 page.emulateMedia

このメソッドは、media 引数を通じて CSS media type を、および/または colorScheme 引数を使用して 'prefers-colors-scheme' メディア機能を変更します。

使用法

page.evaluate("() => matchMedia('screen').matches");
// → true
page.evaluate("() => matchMedia('print').matches");
// → false

page.emulateMedia(new Page.EmulateMediaOptions().setMedia(Media.PRINT));
page.evaluate("() => matchMedia('screen').matches");
// → false
page.evaluate("() => matchMedia('print').matches");
// → true

page.emulateMedia(new Page.EmulateMediaOptions());
page.evaluate("() => matchMedia('screen').matches");
// → true
page.evaluate("() => matchMedia('print').matches");
// → false
page.emulateMedia(new Page.EmulateMediaOptions().setColorScheme(ColorScheme.DARK));
page.evaluate("() => matchMedia('(prefers-color-scheme: dark)').matches");
// → true
page.evaluate("() => matchMedia('(prefers-color-scheme: light)').matches");
// → false

引数

  • options Page.EmulateMediaOptions (オプション)
    • setColorScheme null | enum ColorScheme { LIGHT, DARK, NO_PREFERENCE } (オプション)v1.9で追加#

      prefers-colors-scheme メディア機能をエミュレートします。サポートされる値は 'light''dark' です。null を渡すとカラーテーマのエミュレーションが無効になります。'no-preference' は非推奨です。

    • setContrast null | enum Contrast { NO_PREFERENCE, MORE } (オプション)v1.51で追加#

      'prefers-contrast' メディア機能をエミュレートします。サポートされる値は 'no-preference''more' です。null を渡すとコントラストエミュレーションが無効になります。

    • setForcedColors null | enum ForcedColors { ACTIVE, NONE } (オプション)v1.15で追加#

      'forced-colors' メディア機能をエミュレートします。サポートされる値は 'active''none' です。null を渡すと強制カラーエミュレーションが無効になります。

    • setMedia null | enum Media { SCREEN, PRINT } (オプション)v1.9で追加#

      ページのCSSメディアタイプを変更します。許可される値は 'screen''print'null のみです。null を渡すとCSSメディアのエミュレーションが無効になります。

    • setReducedMotion null | enum ReducedMotion { REDUCE, NO_PREFERENCE } (オプション)v1.12で追加#

      'prefers-reduced-motion' メディア機能をエミュレートします。サポートされる値は 'reduce''no-preference' です。null を渡すと軽減モーションエミュレーションが無効になります。

戻り値


evaluate

v1.9より前に追加 page.evaluate

expression 呼び出しの値を返します。

Page.evaluate() に渡された関数が Promise を返す場合、Page.evaluate() はその Promise が解決されるのを待機し、その値を返します。

Page.evaluate() に渡された関数が非シリアル化可能な値を返す場合、Page.evaluate()undefined に解決されます。Playwright は、JSON によってシリアル化できない追加の値(-0NaNInfinity-Infinity)の転送もサポートしています。

使用法

expression に引数を渡す

Object result = page.evaluate("([x, y]) => {\n" +
" return Promise.resolve(x * y);\n" +
"}", Arrays.asList(7, 8));
System.out.println(result); // prints "56"

関数の代わりに文字列を渡すこともできます。

System.out.println(page.evaluate("1 + 2")); // prints "3"

ElementHandle のインスタンスは、Page.evaluate() の引数として渡すことができます。

ElementHandle bodyHandle = page.evaluate("document.body");
String html = (String) page.evaluate("([body, suffix]) => body.innerHTML + suffix", Arrays.asList(bodyHandle, "hello"));
bodyHandle.dispose();

引数

  • expression String#

    ブラウザコンテキストで評価されるJavaScript式。式が関数に評価される場合、その関数は自動的に呼び出されます。

  • arg EvaluationArgument (オプション)#

    expression に渡すオプションの引数です。

戻り値


evaluateHandle

v1.9より前に追加 page.evaluateHandle

expression の呼び出し結果の値を JSHandle として返します。

Page.evaluate()Page.evaluateHandle() の唯一の違いは、Page.evaluateHandle()JSHandle を返すことです。

Page.evaluateHandle() に渡された関数が Promise を返す場合、Page.evaluateHandle() はその Promise が解決するのを待ち、その値を返します。

使用法

// Handle for the window object.
JSHandle aWindowHandle = page.evaluateHandle("() => Promise.resolve(window)");

関数の代わりに文字列を渡すこともできます。

JSHandle aHandle = page.evaluateHandle("document"); // Handle for the "document".

JSHandle のインスタンスは、Page.evaluateHandle() の引数として渡すことができます。

JSHandle aHandle = page.evaluateHandle("() => document.body");
JSHandle resultHandle = page.evaluateHandle("([body, suffix]) => body.innerHTML + suffix", Arrays.asList(aHandle, "hello"));
System.out.println(resultHandle.jsonValue());
resultHandle.dispose();

引数

  • expression String#

    ブラウザコンテキストで評価されるJavaScript式。式が関数に評価される場合、その関数は自動的に呼び出されます。

  • arg EvaluationArgument (オプション)#

    expression に渡すオプションの引数です。

戻り値


exposeBinding

v1.9より前に追加 page.exposeBinding

このメソッドは、このページのすべてのフレームの window オブジェクトに name という関数を追加します。この関数が呼び出されると、callback が実行され、Promise が返されます。この Promise は callback の戻り値に解決されます。callbackPromise を返す場合、それが待機されます。

callback 関数の最初の引数には、呼び出し元に関する情報が含まれています: { browserContext: BrowserContext, page: Page, frame: Frame }

コンテキスト全体に適用されるバージョンについては、BrowserContext.exposeBinding() を参照してください。

注釈

Page.exposeBinding() を介してインストールされた関数は、ナビゲーション後も存続します。

使用法

ページ URL をページのすべてのフレームに公開する例

import com.microsoft.playwright.*;

public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch(new BrowserType.LaunchOptions().setHeadless(false));
BrowserContext context = browser.newContext();
Page page = context.newPage();
page.exposeBinding("pageURL", (source, args) -> source.page().url());
page.setContent("<script>\n" +
" async function onClick() {\n" +
" document.querySelector('div').textContent = await window.pageURL();\n" +
" }\n" +
"</script>\n" +
"<button onclick=\"onClick()\">Click me</button>\n" +
"<div></div>");
page.click("button");
}
}
}

引数

  • name String#

    window オブジェクト上の関数の名前です。

  • callback BindingCallback#

    Playwright のコンテキストで呼び出されるコールバック関数です。

  • options Page.ExposeBindingOptions (オプション)

    • setHandle boolean (オプション)#

      非推奨

      このオプションは将来削除される予定です。

      引数を値渡しではなく、ハンドルとして渡すかどうか。ハンドルを渡す場合、1つの引数のみがサポートされます。値渡しの場合、複数の引数がサポートされます。

戻り値


exposeFunction

v1.9より前に追加 page.exposeFunction

このメソッドは、ページのすべてのフレームの window オブジェクトに name という関数を追加します。この関数が呼び出されると、callback が実行され、Promise が返されます。この Promise は callback の戻り値に解決されます。

callbackPromise を返す場合、それが待機されます。

コンテキスト全体に公開される関数については、BrowserContext.exposeFunction() を参照してください。

注釈

Page.exposeFunction() を介してインストールされた関数は、ナビゲーション後も存続します。

使用法

ページに sha256 関数を追加する例

import com.microsoft.playwright.*;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch(new BrowserType.LaunchOptions().setHeadless(false));
Page page = browser.newPage();
page.exposeFunction("sha256", args -> {
try {
String text = (String) args[0];
MessageDigest crypto = MessageDigest.getInstance("SHA-256");
byte[] token = crypto.digest(text.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(token);
} catch (NoSuchAlgorithmException e) {
return null;
}
});
page.setContent(
"<script>\n" +
" async function onClick() {\n" +
" document.querySelector('div').textContent = await window.sha256('PLAYWRIGHT');\n" +
" }\n" +
"</script>\n" +
"<button onclick=\"onClick()\">Click me</button>\n" +
"<div></div>"
);
page.click("button");
}
}
}

引数

  • name String#

    window オブジェクト上の関数の名前です。

  • callback FunctionCallback#

    Playwright のコンテキストで呼び出されるコールバック関数です。

戻り値


frame

v1.9より前に追加 page.frame

指定された基準に一致するフレームを返します。name または url のいずれかを指定する必要があります。

使用法

Frame frame = page.frame("frame-name");
Frame frame = page.frameByUrl(Pattern.compile(".*domain.*"));

引数

  • name Stringv1.9で追加#

    iframename 属性で指定されたフレーム名。

戻り値


frameByUrl

v1.9で追加 page.frameByUrl

URL が一致するフレームを返します。

使用法

Page.frameByUrl(url);

引数

  • url String | Pattern | Predicate<String>#

    フレームの url を [URL] オブジェクトとして受け取るグロブパターン、正規表現パターン、または述語。

戻り値


frameLocator

追加されました: v1.17 page.frameLocator

iframe を操作する場合、iframe に入り、その iframe 内の要素を選択できるフレームロケータを作成できます。

使用法

以下のスニペットは、<iframe id="my-frame"> のように、ID my-frame を持つ iframe 内のテキスト "Submit" を持つ要素を特定します。

Locator locator = page.frameLocator("#my-iframe").getByText("Submit");
locator.click();

引数

  • selector String#

    DOM 要素を解決する際に使用するセレクタ。

戻り値


frames

v1.9より前に追加 page.frames

ページにアタッチされているすべてのフレームの配列です。

使用法

Page.frames();

戻り値


getByAltText

追加されました: v1.27 page.getByAltText

要素を alt テキストで特定することができます。

使用法

例えば、このメソッドは alt テキスト "Playwright logo" を持つ画像を検索します。

<img alt='Playwright logo'>
page.getByAltText("Playwright logo").click();

引数

  • text String | Pattern#

    要素を特定するためのテキスト。

  • options Page.GetByAltTextOptions (オプション)

    • setExact boolean (オプション)#

      厳密な一致(大文字小文字を区別し、文字列全体が一致)を検索するかどうか。デフォルトは false です。正規表現で特定する場合は無視されます。厳密な一致でも空白はトリムされることに注意してください。

戻り値


getByLabel

追加されました: v1.27 page.getByLabel

関連する <label> または aria-labelledby 要素のテキスト、または aria-label 属性によって入力要素を特定することができます。

使用法

例えば、このメソッドは以下の DOM で "Username" と "Password" のラベルを持つ入力を検索します。

<input aria-label="Username">
<label for="password-input">Password:</label>
<input id="password-input">
page.getByLabel("Username").fill("john");
page.getByLabel("Password").fill("secret");

引数

  • text String | Pattern#

    要素を特定するためのテキスト。

  • options Page.GetByLabelOptions (オプション)

    • setExact boolean (オプション)#

      厳密な一致(大文字小文字を区別し、文字列全体が一致)を検索するかどうか。デフォルトは false です。正規表現で特定する場合は無視されます。厳密な一致でも空白はトリムされることに注意してください。

戻り値


getByPlaceholder

追加されました: v1.27 page.getByPlaceholder

要素をプレースホルダーテキストで特定することができます。

使用法

例えば、以下の DOM 構造を考えてみましょう。

<input type="email" placeholder="name@example.com" />

プレースホルダーテキストで要素を特定した後、入力を埋めることができます。

page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");

引数

  • text String | Pattern#

    要素を特定するためのテキスト。

  • options Page.GetByPlaceholderOptions (オプション)

    • setExact boolean (オプション)#

      厳密な一致(大文字小文字を区別し、文字列全体が一致)を検索するかどうか。デフォルトは false です。正規表現で特定する場合は無視されます。厳密な一致でも空白はトリムされることに注意してください。

戻り値


getByRole

追加されました: v1.27 page.getByRole

要素を ARIA ロールARIA 属性、および アクセシブル名 で特定することができます。

使用法

以下の DOM 構造を考えてみましょう。

<h3>Sign up</h3>
<label>
<input type="checkbox" /> Subscribe
</label>
<br/>
<button>Submit</button>

各要素をその暗黙的なロールで特定することができます。

assertThat(page
.getByRole(AriaRole.HEADING,
new Page.GetByRoleOptions().setName("Sign up")))
.isVisible();

page.getByRole(AriaRole.CHECKBOX,
new Page.GetByRoleOptions().setName("Subscribe"))
.check();

page.getByRole(AriaRole.BUTTON,
new Page.GetByRoleOptions().setName(
Pattern.compile("submit", Pattern.CASE_INSENSITIVE)))
.click();

引数

  • role enum AriaRole { ALERT, ALERTDIALOG, APPLICATION, ARTICLE, BANNER, BLOCKQUOTE, BUTTON, CAPTION, CELL, CHECKBOX, CODE, COLUMNHEADER, COMBOBOX, COMPLEMENTARY, CONTENTINFO, DEFINITION, DELETION, DIALOG, DIRECTORY, DOCUMENT, EMPHASIS, FEED, FIGURE, FORM, GENERIC, GRID, GRIDCELL, GROUP, HEADING, IMG, INSERTION, LINK, LIST, LISTBOX, LISTITEM, LOG, MAIN, MARQUEE, MATH, METER, MENU, MENUBAR, MENUITEM, MENUITEMCHECKBOX, MENUITEMRADIO, NAVIGATION, NONE, NOTE, OPTION, PARAGRAPH, PRESENTATION, PROGRESSBAR, RADIO, RADIOGROUP, REGION, ROW, ROWGROUP, ROWHEADER, SCROLLBAR, SEARCH, SEARCHBOX, SEPARATOR, SLIDER, SPINBUTTON, STATUS, STRONG, SUBSCRIPT, SUPERSCRIPT, SWITCH, TAB, TABLE, TABLIST, TABPANEL, TERM, TEXTBOX, TIME, TIMER, TOOLBAR, TOOLTIP, TREE, TREEGRID, TREEITEM }#

    必須の ARIA ロール。

  • options Page.GetByRoleOptions (オプション)

    • setChecked boolean (オプション)#

      通常、aria-checked またはネイティブの <input type=checkbox> コントロールによって設定される属性。

      aria-checked について詳しくはこちらをご覧ください。

    • setDisabled boolean (オプション)#

      通常、aria-disabled または disabled によって設定される属性。

      注釈

      他のほとんどの属性とは異なり、disabled は DOM 階層を通して継承されます。aria-disabled について詳しくはこちらをご覧ください。

    • setExact boolean (オプション)追加されました: v1.28#

      setName が厳密に一致するかどうか:大文字小文字を区別し、文字列全体が一致するか。デフォルトは false です。setName が正規表現の場合は無視されます。厳密な一致でも空白はトリムされることに注意してください。

    • setExpanded boolean (オプション)#

      通常、aria-expanded によって設定される属性。

      aria-expanded について詳しくはこちらをご覧ください。

    • setIncludeHidden boolean (オプション)#

      非表示要素が一致するかどうかを制御するオプション。デフォルトでは、ARIA で定義されているように、非表示でない要素のみがロールセレクタによって一致します。

      aria-hidden について詳しくはこちらをご覧ください。

    • setLevel int (オプション)#

      通常、headinglistitemrowtreeitem のロールに存在し、<h1>-<h6> 要素にはデフォルト値が設定されている数値属性。

      aria-level について詳しくはこちらをご覧ください。

    • setName String | Pattern (オプション)#

      アクセシブル名 に一致させるオプション。デフォルトでは、大文字小文字を区別せず、部分文字列を検索します。この動作を制御するには setExact を使用します。

      アクセシブル名 について詳しくはこちらをご覧ください。

    • setPressed boolean (オプション)#

      通常、aria-pressed によって設定される属性。

      aria-pressed について詳しくはこちらをご覧ください。

    • setSelected boolean (オプション)#

      通常、aria-selected によって設定される属性。

      aria-selected について詳しくはこちらをご覧ください。

戻り値

詳細

ロールセレクタは、アクセシビリティ監査や適合性テストを置き換えるものではありませんが、ARIA ガイドラインに関する早期のフィードバックを提供します。

多くの HTML 要素には、ロールセレクタによって認識される 暗黙的に定義されたロール があります。サポートされているすべての ロールはこちら で確認できます。ARIA ガイドラインでは、role および/または aria-* 属性をデフォルト値に設定することで、暗黙的なロールや属性を重複させることは推奨されていません


getByTestId

追加されました: v1.27 page.getByTestId

テスト ID で要素を特定します。

使用法

以下の DOM 構造を考えてみましょう。

<button data-testid="directions">Itinéraire</button>

要素をテスト ID で特定することができます。

page.getByTestId("directions").click();

引数

戻り値

詳細

デフォルトでは、data-testid 属性がテスト ID として使用されます。必要に応じて、異なるテスト ID 属性を設定するには、Selectors.setTestIdAttribute() を使用してください。


getByText

追加されました: v1.27 page.getByText

与えられたテキストを含む要素を特定することができます。

アクセシブルなロールなどの別の基準で一致させ、その後テキストコンテンツでフィルタリングできる Locator.filter() も参照してください。

使用法

以下の DOM 構造を考えてみましょう。

<div>Hello <span>world</span></div>
<div>Hello</div>

テキストの部分文字列、厳密な文字列、または正規表現で特定することができます。

// Matches <span>
page.getByText("world");

// Matches first <div>
page.getByText("Hello world");

// Matches second <div>
page.getByText("Hello", new Page.GetByTextOptions().setExact(true));

// Matches both <div>s
page.getByText(Pattern.compile("Hello"));

// Matches second <div>
page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE));

引数

  • text String | Pattern#

    要素を特定するためのテキスト。

  • options Page.GetByTextOptions (オプション)

    • setExact boolean (オプション)#

      厳密な一致(大文字小文字を区別し、文字列全体が一致)を検索するかどうか。デフォルトは false です。正規表現で特定する場合は無視されます。厳密な一致でも空白はトリムされることに注意してください。

戻り値

詳細

テキストによるマッチングは、厳密な一致の場合でも常に空白を正規化します。例えば、複数のスペースを1つにまとめ、改行をスペースに変換し、前後の空白を無視します。

button および submit タイプの入力要素は、テキストコンテンツの代わりに value で一致します。例えば、テキスト "Log in" で特定すると、<input type=button value="Log in"> に一致します。


getByTitle

追加されました: v1.27 page.getByTitle

要素をそのタイトル属性で特定することができます。

使用法

以下の DOM 構造を考えてみましょう。

<span title='Issues count'>25 issues</span>

タイトルテキストで特定した後、Issue の数を確認することができます。

assertThat(page.getByTitle("Issues count")).hasText("25 issues");

引数

  • text String | Pattern#

    要素を特定するためのテキスト。

  • options Page.GetByTitleOptions (オプション)

    • setExact boolean (オプション)#

      厳密な一致(大文字小文字を区別し、文字列全体が一致)を検索するかどうか。デフォルトは false です。正規表現で特定する場合は無視されます。厳密な一致でも空白はトリムされることに注意してください。

戻り値


goBack

v1.9より前に追加 page.goBack

メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。戻れない場合は null を返します。

履歴の前のページに移動します。

使用法

Page.goBack();
Page.goBack(options);

引数

  • options Page.GoBackOptions (オプション)
    • setTimeout double (オプション)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒で、0 を渡すとタイムアウトを無効にします。デフォルト値は、BrowserContext.setDefaultNavigationTimeout()BrowserContext.setDefaultTimeout()Page.setDefaultNavigationTimeout()、または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (オプション)#

      操作が成功したと見なすタイミング。デフォルトは load です。イベントは以下のいずれかです。

      • 'domcontentloaded' - DOMContentLoaded イベントが発火したときに操作が終了したと見なします。
      • 'load' - load イベントが発火したときに操作が終了したと見なします。
      • 'networkidle' - 非推奨 少なくとも 500 ミリ秒間ネットワーク接続がない場合に操作が終了したと見なします。テストにはこのメソッドを使用せず、代わりに Web アサーションに頼って準備状況を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントの読み込みが開始されたときに操作が終了したと見なします。

戻り値


goForward

v1.9より前に追加 page.goForward

メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。進めない場合は null を返します。

履歴の次のページに移動します。

使用法

Page.goForward();
Page.goForward(options);

引数

  • options Page.GoForwardOptions (オプション)
    • setTimeout double (オプション)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒で、0 を渡すとタイムアウトを無効にします。デフォルト値は、BrowserContext.setDefaultNavigationTimeout()BrowserContext.setDefaultTimeout()Page.setDefaultNavigationTimeout()、または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (オプション)#

      操作が成功したと見なすタイミング。デフォルトは load です。イベントは以下のいずれかです。

      • 'domcontentloaded' - DOMContentLoaded イベントが発火したときに操作が終了したと見なします。
      • 'load' - load イベントが発火したときに操作が終了したと見なします。
      • 'networkidle' - 非推奨 少なくとも 500 ミリ秒間ネットワーク接続がない場合に操作が終了したと見なします。テストにはこのメソッドを使用せず、代わりに Web アサーションに頼って準備状況を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントの読み込みが開始されたときに操作が終了したと見なします。

戻り値


isClosed

v1.9より前に追加 page.isClosed

ページが閉じられたことを示します。

使用法

Page.isClosed();

戻り値


locator

v1.14で追加 page.locator

このメソッドは、このページ/フレームでアクションを実行するために使用できる要素ロケータを返します。ロケータは、アクションを実行する直前に要素に解決されるため、同じロケータに対する一連のアクションは、実際には異なる DOM 要素に対して実行される可能性があります。これは、それらのアクション間の DOM 構造が変更された場合に発生します。

ロケータについて詳しくはこちらをご覧ください。.

使用法

Page.locator(selector);
Page.locator(selector, options);

引数

  • selector String#

    DOM 要素を解決する際に使用するセレクタ。

  • options Page.LocatorOptions (オプション)

    • setHas Locator (オプション)#

      このメソッドの結果を、この相対ロケータに一致する要素を含むものに絞り込みます。例えば、text=Playwright を持つ article<article><div>Playwright</div></article> に一致します。

      内部ロケータは、外部ロケータに対して相対的でなければならず、ドキュメントルートからではなく、外部ロケータの一致からクエリされます。例えば、<article><content><div>Playwright</div></content></article> の中の div を持つ content を見つけることができます。しかし、content の外の要素を使用すべきではないため、article div を持つ content を探すことは失敗します。

      外部ロケータと内部ロケータは同じフレームに属している必要があります。内部ロケータには FrameLocator を含めることはできません。

    • setHasNot Locator (オプション)追加されました: v1.33#

      内部ロケータに一致する要素を含まない要素に一致します。内部ロケータは外部ロケータに対してクエリされます。例えば、div を持たない article<article><span>Playwright</span></article> に一致します。

      外部ロケータと内部ロケータは同じフレームに属している必要があります。内部ロケータには FrameLocator を含めることはできません。

    • setHasNotText String | Pattern (オプション)追加されました: v1.33#

      指定されたテキストを内部のどこかに、おそらく子または子孫要素の中に含まない要素に一致します。文字列 を渡した場合、大文字小文字を区別せず、部分文字列を検索します。

    • setHasText String | Pattern (オプション)#

      指定されたテキストを内部のどこかに、おそらく子または子孫要素の中に含む要素に一致します。文字列 を渡した場合、大文字小文字を区別せず、部分文字列を検索します。例えば、"Playwright"<article><div>Playwright</div></article> に一致します。

戻り値


mainFrame

v1.9より前に追加 page.mainFrame

ページのメインフレーム。ページにはナビゲーション中に永続するメインフレームが存在することが保証されています。

使用法

Page.mainFrame();

戻り値


navigate

v1.9より前に追加 page.navigate

メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最初のリダイレクト以外のレスポンスで解決されます。

以下の場合、このメソッドはエラーをスローします。

  • SSL エラー(例:自己署名証明書の場合)。
  • ターゲット URL が無効。
  • ナビゲーション中に setTimeout が超過した。
  • リモートサーバーが応答しない、または到達不能。
  • メインリソースの読み込みに失敗した。

このメソッドは、リモートサーバーから有効な HTTP ステータスコード(404 "Not Found" や 500 "Internal Server Error" を含む)が返された場合でもエラーをスローしません。これらのレスポンスのステータスコードは Response.status() を呼び出すことで取得できます。

注釈

このメソッドは、エラーをスローするか、メインリソースのレスポンスを返します。唯一の例外は、about:blank へのナビゲーション、または異なるハッシュを持つ同じ URL へのナビゲーションで、これらは成功し、null を返します。

注釈

ヘッドレスモードでは、PDF ドキュメントへのナビゲーションはサポートされていません。upstream issue を参照してください。

使用法

Page.navigate(url);
Page.navigate(url, options);

引数

  • url String#

    ページをナビゲートする URL。URL にはスキーム(例:https://)を含める必要があります。コンテキストオプションで setBaseURL が提供されており、渡された URL がパスである場合、それは new URL() コンストラクタを介して結合されます。

  • options Page.NavigateOptions (オプション)

    • setReferer String (オプション)#

      Referer ヘッダー値。提供されている場合、Page.setExtraHTTPHeaders() によって設定された Referer ヘッダー値よりも優先されます。

    • setTimeout double (オプション)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒で、0 を渡すとタイムアウトを無効にします。デフォルト値は、BrowserContext.setDefaultNavigationTimeout()BrowserContext.setDefaultTimeout()Page.setDefaultNavigationTimeout()、または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (オプション)#

      操作が成功したと見なすタイミング。デフォルトは load です。イベントは以下のいずれかです。

      • 'domcontentloaded' - DOMContentLoaded イベントが発火したときに操作が終了したと見なします。
      • 'load' - load イベントが発火したときに操作が終了したと見なします。
      • 'networkidle' - 非推奨 少なくとも 500 ミリ秒間ネットワーク接続がない場合に操作が終了したと見なします。テストにはこのメソッドを使用せず、代わりに Web アサーションに頼って準備状況を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントの読み込みが開始されたときに操作が終了したと見なします。

戻り値


onceDialog

追加されました: v1.10 page.onceDialog

一度限りの Dialog ハンドラを追加します。このハンドラは、次の Dialog が作成された直後に削除されます。

page.onceDialog(dialog -> {
dialog.accept("foo");
});

// prints 'foo'
System.out.println(page.evaluate("prompt('Enter string:')"));

// prints 'null' as the dialog will be auto-dismissed because there are no handlers.
System.out.println(page.evaluate("prompt('Enter string:')"));

上記のコードは以下と同等です。

Consumer<Dialog> handler = new Consumer<Dialog>() {
@Override
public void accept(Dialog dialog) {
dialog.accept("foo");
page.offDialog(this);
}
};
page.onDialog(handler);

// prints 'foo'
System.out.println(page.evaluate("prompt('Enter string:')"));

// prints 'null' as the dialog will be auto-dismissed because there are no handlers.
System.out.println(page.evaluate("prompt('Enter string:')"));

使用法

Page.onceDialog(handler);

引数

  • handler Consumer<Dialog>#

    Dialog オブジェクトを受け取ります。ダイアログを Dialog.accept() または Dialog.dismiss() する必要があります。そうしないと、ページはダイアログの応答を待って フリーズし、クリックなどのアクションは決して完了しません。


opener

v1.9より前に追加 page.opener

ポップアップページのオープナーを返し、それ以外の場合は null を返します。オープナーが既に閉じられている場合は null を返します。

使用法

Page.opener();

戻り値


pause

v1.9で追加 page.pause

スクリプトの実行を一時停止します。Playwright はスクリプトの実行を停止し、ユーザーがページオーバーレイの「再開」ボタンを押すか、DevTools コンソールで playwright.resume() を呼び出すのを待ちます。

一時停止中に、ユーザーはセレクタを検査したり、手動で操作を実行したりできます。再開すると、元のスクリプトは一時停止された場所から実行を続行します。

注釈

このメソッドは、Playwright がヘッドレスモードではなく、setHeadless オプションが偽の値で起動されている必要があります。

使用法

Page.pause();

戻り値


pdf

v1.9より前に追加 page.pdf

PDF バッファを返します。

page.pdf() は、print CSS メディアでページの PDF を生成します。screen メディアで PDF を生成するには、page.pdf() を呼び出す前に Page.emulateMedia() を呼び出します。

注釈

デフォルトでは、page.pdf() は印刷用に色が変更された PDF を生成します。正確な色を強制的にレンダリングするには、-webkit-print-color-adjust プロパティを使用してください。

使用法

// Generates a PDF with "screen" media type.
page.emulateMedia(new Page.EmulateMediaOptions().setMedia(Media.SCREEN));
page.pdf(new Page.PdfOptions().setPath(Paths.get("page.pdf")));

setWidthsetHeight、および setMargin オプションは、単位付きの値を受け入れます。単位なしの値はピクセルとして扱われます。

いくつかの例

  • page.pdf({width: 100}) - 幅が 100 ピクセルに設定されて印刷されます。
  • page.pdf({width: '100px'}) - 幅が 100 ピクセルに設定されて印刷されます。
  • page.pdf({width: '10cm'}) - 幅が 10 センチメートルに設定されて印刷されます。

可能なすべての単位は次のとおりです。

  • px - ピクセル
  • in - インチ
  • cm - センチメートル
  • mm - ミリメートル

setFormat オプションは次のとおりです。

  • Letter: 8.5インチ x 11インチ
  • Legal: 8.5インチ x 14インチ
  • Tabloid: 11インチ x 17インチ
  • Ledger: 17インチ x 11インチ
  • A0: 33.1インチ x 46.8インチ
  • A1: 23.4インチ x 33.1インチ
  • A2: 16.54インチ x 23.4インチ
  • A3: 11.7インチ x 16.54インチ
  • A4: 8.27インチ x 11.7インチ
  • A5: 5.83インチ x 8.27インチ
  • A6: 4.13インチ x 5.83インチ
注釈

setHeaderTemplate および setFooterTemplate のマークアップには以下の制限があります: > 1. テンプレート内のスクリプトタグは評価されません。 > 2. テンプレート内でページスタイルは表示されません。

引数

  • options Page.PdfOptions (オプション)
    • setDisplayHeaderFooter boolean (オプション)#

      ヘッダーとフッターを表示します。デフォルトは false です。

    • setFooterTemplate String (オプション)#

      印刷フッター用の HTML テンプレート。setHeaderTemplate と同じ形式を使用する必要があります。

    • setFormat String (オプション)#

      用紙形式。設定されている場合、setWidth または setHeight オプションよりも優先されます。デフォルトは「Letter」です。

    • setHeaderTemplate String (オプション)#

      印刷ヘッダー用の HTML テンプレート。有効な HTML マークアップであり、印刷値を挿入するために以下のクラスを使用する必要があります。

      • 'date' フォーマットされた印刷日付
      • 'title' ドキュメントタイトル
      • 'url' ドキュメントの場所
      • 'pageNumber' 現在のページ番号
      • 'totalPages' ドキュメントの総ページ数
    • setHeight String (オプション)#

      用紙の高さ。単位付きの値を受け入れます。

    • setLandscape boolean (オプション)#

      用紙の向き。デフォルトは false です。

    • setMargin Margin (オプション)#

      • setTop String (オプション)

        上余白。単位付きの値を受け入れます。デフォルトは 0 です。

      • setRight String (オプション)

        右余白。単位付きの値を受け入れます。デフォルトは 0 です。

      • setBottom String (オプション)

        下余白。単位付きの値を受け入れます。デフォルトは 0 です。

      • setLeft String (オプション)

        左余白。単位付きの値を受け入れます。デフォルトは 0 です。

      用紙の余白。デフォルトはなしです。

    • setOutline boolean (オプション)v1.42で追加#

      ドキュメントのアウトラインを PDF に埋め込むかどうか。デフォルトは false です。

    • setPageRanges String (オプション)#

      印刷するページの範囲。例:'1-5, 8, 11-13'。デフォルトは空文字列で、すべてのページを印刷することを意味します。

    • setPath Path (オプション)#

      PDF を保存するファイルパス。setPath が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合、PDF はディスクに保存されません。

    • setPreferCSSPageSize boolean (オプション)#

      ページで宣言されている CSS @page サイズを、setWidth および setHeight または setFormat オプションで宣言されているものよりも優先させるかどうか。デフォルトは false で、コンテンツは用紙サイズに合わせてスケーリングされます。

    • setPrintBackground boolean (オプション)#

      背景グラフィックを印刷します。デフォルトは false です。

    • setScale double (オプション)#

      ウェブページレンダリングのスケール。デフォルトは 1 です。スケール量は 0.1 から 2 の間である必要があります。

    • setTagged boolean (オプション)v1.42で追加#

      タグ付き(アクセシブル)PDF を生成するかどうか。デフォルトは false です。

    • setWidth String (オプション)#

      用紙の幅。単位付きの値を受け入れます。

戻り値


reload

v1.9より前に追加 page.reload

このメソッドは、ユーザーがブラウザの更新をトリガーしたかのように、現在のページを再読み込みします。メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。

使用法

Page.reload();
Page.reload(options);

引数

  • options Page.ReloadOptions (オプション)
    • setTimeout double (オプション)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒で、0 を渡すとタイムアウトを無効にします。デフォルト値は、BrowserContext.setDefaultNavigationTimeout()BrowserContext.setDefaultTimeout()Page.setDefaultNavigationTimeout()、または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (オプション)#

      操作が成功したと見なすタイミング。デフォルトは load です。イベントは以下のいずれかです。

      • 'domcontentloaded' - DOMContentLoaded イベントが発火したときに操作が終了したと見なします。
      • 'load' - load イベントが発火したときに操作が終了したと見なします。
      • 'networkidle' - 非推奨 少なくとも 500 ミリ秒間ネットワーク接続がない場合に操作が終了したと見なします。テストにはこのメソッドを使用せず、代わりに Web アサーションに頼って準備状況を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントの読み込みが開始されたときに操作が終了したと見なします。

戻り値


removeLocatorHandler

v1.44で追加 page.removeLocatorHandler

特定のロケータに対して Page.addLocatorHandler() によって追加されたすべてのロケータハンドラを削除します。

使用法

Page.removeLocatorHandler(locator);

引数

戻り値


requestGC

追加されました: v1.48 page.requestGC

ページにガベージコレクションの実行を要求します。到達不能なすべてのオブジェクトが収集される保証はないことに注意してください。

これはメモリリークの検出に役立ちます。例えば、ページにリークしている可能性がある大きなオブジェクト 'suspect' がある場合、WeakRef を使用してリークしていないことを確認できます。

// 1. In your page, save a WeakRef for the "suspect".
page.evaluate("globalThis.suspectWeakRef = new WeakRef(suspect)");
// 2. Request garbage collection.
page.requestGC();
// 3. Check that weak ref does not deref to the original object.
assertTrue(page.evaluate("!globalThis.suspectWeakRef.deref()"));

使用法

Page.requestGC();

戻り値


route

v1.9より前に追加 page.route

ルーティングは、ページによって行われるネットワークリクエストを変更する機能を提供します。

ルーティングが有効になると、URL パターンに一致するすべてのリクエストは、続行、フルフィル、または中止されない限り停止します。

注釈

レスポンスがリダイレクトの場合、ハンドラは最初のリダイレクトの URL に対してのみ呼び出されます。

注釈

Page.route() は、サービスワーカーによってインターセプトされたリクエストをインターセプトしません。この 問題を参照してください。setServiceWorkers'block' に設定することで、リクエストインターセプトを使用する際にサービスワーカーを無効にすることをお勧めします。

注釈

Page.route() は、ポップアップページの最初のリクエストをインターセプトしません。代わりに BrowserContext.route() を使用してください。

使用法

すべての画像リクエストを中止する単純なハンドラの例

Page page = browser.newPage();
page.route("**/*.{png,jpg,jpeg}", route -> route.abort());
page.navigate("https://example.com");
browser.close();

または、正規表現パターンを使用した同じスニペット

Page page = browser.newPage();
page.route(Pattern.compile("(\\.png$)|(\\.jpg$)"),route -> route.abort());
page.navigate("https://example.com");
browser.close();

リクエストを調べてルーティングアクションを決定することも可能です。例えば、特定の投稿データを含むすべてのリクエストをモックし、他のすべてのリクエストはそのままにするなど。

page.route("/api/**", route -> {
if (route.request().postData().contains("my-string"))
route.fulfill(new Route.FulfillOptions().setBody("mocked-data"));
else
route.resume();
});

ページルーティングは、リクエストが両方のハンドラに一致する場合、ブラウザコンテキストルーティング(BrowserContext.route() で設定)よりも優先されます。

ハンドラ付きのルートを削除するには、Page.unroute() を使用できます。

注釈

ルーティングを有効にすると、HTTP キャッシュが無効になります。

引数

  • url String | Pattern | Predicate<String>#

    ルーティング中に一致させる [URL] を受け取るグロブパターン、正規表現パターン、または述語。setBaseURL がコンテキストオプションで設定されており、提供された URL が * で始まらない文字列である場合、それは new URL() コンストラクタを使用して解決されます。

  • handler Consumer<Route>#

    リクエストをルーティングするためのハンドラ関数。

  • options Page.RouteOptions (オプション)

    • setTimes int (オプション)v1.15で追加#

      ルートが使用される頻度。デフォルトでは、常に使用されます。

戻り値


routeFromHAR

追加されました: v1.23 page.routeFromHAR

指定されている場合、ページで行われるネットワークリクエストは HAR ファイルから提供されます。HAR からのリプレイ について詳しくはこちらをご覧ください。

Playwright は、サービスワーカーによってインターセプトされたリクエストを HAR ファイルから提供しません。この 問題を参照してください。setServiceWorkers'block' に設定することで、リクエストインターセプトを使用する際にサービスワーカーを無効にすることをお勧めします。

使用法

Page.routeFromHAR(har);
Page.routeFromHAR(har, options);

引数

  • har Path#

    事前に記録されたネットワークデータを含む HAR ファイルへのパス。path が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。

  • options Page.RouteFromHAROptions (オプション)

    • setNotFound enum HarNotFound { ABORT, FALLBACK } (オプション)#

      • 'abort' に設定されている場合、HAR ファイルで見つからないリクエストはすべて中止されます。
      • 'fallback' に設定されている場合、見つからないリクエストはネットワークに送信されます。

      デフォルトは abort です。

    • setUpdate boolean (オプション)#

      指定されている場合、ファイルから提供する代わりに、実際のネットワーク情報で指定された HAR を更新します。ファイルは BrowserContext.close() が呼び出されたときにディスクに書き込まれます。

    • setUpdateContent enum RouteFromHarUpdateContentPolicy { EMBED, ATTACH } (オプション)追加されました: v1.32#

      リソースコンテンツ管理を制御するオプション設定です。attach が指定されている場合、リソースは個別のファイルまたは ZIP アーカイブ内のエントリとして永続化されます。embed が指定されている場合、コンテンツは HAR ファイル内にインラインで保存されます。

    • setUpdateMode enum HarMode { FULL, MINIMAL } (オプション)追加されました: v1.32#

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

    • setUrl String | Pattern (オプション)#

      リクエスト URL に一致させるためのグロブパターン、正規表現、または述語。HAR ファイルから提供されるのは、このパターンに一致する URL のリクエストのみです。指定されていない場合、すべてのリクエストは HAR ファイルから提供されます。

戻り値


routeWebSocket

追加されました: v1.48 page.routeWebSocket

このメソッドを使用すると、ページによって行われる WebSocket 接続を変更できます。

このメソッドが呼び出された後に作成された WebSocket のみがルーティングされることに注意してください。このメソッドはページをナビゲートする前に呼び出すことをお勧めします。

使用法

以下は、単一のメッセージに応答する簡単なモックの例です。WebSocketRoute で詳細と例を参照してください。

page.routeWebSocket("/ws", ws -> {
ws.onMessage(frame -> {
if ("request".equals(frame.text()))
ws.send("response");
});
});

引数

  • url String | Pattern | Predicate<String>#

    このパターンに一致する URL を持つ WebSocket のみがルーティングされます。文字列パターンは、setBaseURL コンテキストオプションに対して相対的になります。

  • handler Consumer<WebSocketRoute>#

    WebSocketをルーティングするためのハンドラー関数です。

戻り値


スクリーンショット

v1.9より前に追加 page.screenshot

キャプチャされたスクリーンショットを含むバッファを返します。

使用法

Page.screenshot();
Page.screenshot(options);

引数

  • options Page.ScreenshotOptions (オプション)
    • setAnimations enum ScreenshotAnimations { DISABLED, ALLOW } (オプション)#

      "disabled"に設定すると、CSSアニメーション、CSSトランジション、Webアニメーションが停止します。アニメーションは、その持続時間によって異なる扱いを受けます。

      • 有限アニメーションは完了まで早送りされるため、transitionendイベントを発生させます。
      • 無限アニメーションは初期状態にキャンセルされ、スクリーンショットの後に再生されます。

      デフォルトは"allow"で、アニメーションはそのままになります。

    • setCaret enum ScreenshotCaret { HIDE, INITIAL } (オプション)#

      "hide"に設定すると、スクリーンショットはテキストカーソルを非表示にします。"initial"に設定すると、テキストカーソルの動作は変更されません。デフォルトは"hide"です。

    • setClip Clip (オプション)#

      • setX double

        クリップ領域の左上隅のX座標

      • setY double

        クリップ領域の左上隅のY座標

      • setWidth double

        クリッピング領域の幅

      • setHeight double

        クリッピング領域の高さ

      結果の画像のクリッピングを指定するオブジェクトです。

    • setFullPage boolean (オプション)#

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

    • setMask List<Locator> (オプション)#

      スクリーンショットを撮影する際にマスクするロケーターを指定します。マスクされた要素は、バウンディングボックスを完全に覆うピンク色のボックス#FF00FFsetMaskColorでカスタマイズ可能)で重ねられます。このマスクは非表示の要素にも適用されます。これを無効にするには、可視要素のみのマッチングを参照してください。

    • setMaskColor String (オプション)追加バージョン: v1.35#

      マスクされた要素のオーバーレイボックスの色をCSSカラー形式で指定します。デフォルトの色はピンクの#FF00FFです。

    • setOmitBackground boolean (オプション)#

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

    • setPath Path (オプション)#

      画像を保存するファイルパスです。スクリーンショットのタイプはファイル拡張子から推測されます。setPathが相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合、画像はディスクに保存されません。

    • setQuality int (オプション)#

      画像の品質(0-100の間)。png画像には適用されません。

    • setScale enum ScreenshotScale { CSS, DEVICE } (オプション)#

      "css"に設定すると、スクリーンショットはページ上の各CSSピクセルにつき1ピクセルになります。高DPIデバイスの場合、これによりスクリーンショットが小さく保たれます。"device"オプションを使用すると、各デバイスピクセルにつき1ピクセルが生成されるため、高DPIデバイスのスクリーンショットは2倍以上大きくなります。

      デフォルトは"device"です。

    • setStyle String (オプション)追加バージョン: v1.41#

      スクリーンショット作成時に適用するスタイルシートのテキストです。ここでは、動的な要素を非表示にしたり、要素を見えなくしたり、そのプロパティを変更したりすることで、再現性のあるスクリーンショットを作成するのに役立ちます。このスタイルシートはShadow DOMを透過し、内部フレームにも適用されます。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setType enum ScreenshotType { PNG, JPEG } (オプション)#

      スクリーンショットのタイプを指定します。デフォルトはpngです。

戻り値


setContent

v1.9より前に追加 page.setContent

このメソッドは内部的にdocument.write()を呼び出し、その全ての特定の特性と動作を継承します。

使用法

Page.setContent(html);
Page.setContent(html, options);

引数

  • html String#

    ページに割り当てるHTMLマークアップです。

  • options Page.SetContentOptions (オプション)

    • setTimeout double (オプション)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒で、0 を渡すとタイムアウトを無効にします。デフォルト値は、BrowserContext.setDefaultNavigationTimeout()BrowserContext.setDefaultTimeout()Page.setDefaultNavigationTimeout()、または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (オプション)#

      操作が成功したと見なすタイミング。デフォルトは load です。イベントは以下のいずれかです。

      • 'domcontentloaded' - DOMContentLoaded イベントが発火したときに操作が終了したと見なします。
      • 'load' - load イベントが発火したときに操作が終了したと見なします。
      • 'networkidle' - 非推奨 少なくとも 500 ミリ秒間ネットワーク接続がない場合に操作が終了したと見なします。テストにはこのメソッドを使用せず、代わりに Web アサーションに頼って準備状況を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントの読み込みが開始されたときに操作が終了したと見なします。

戻り値


setDefaultNavigationTimeout

v1.9より前に追加 page.setDefaultNavigationTimeout

この設定は、以下のメソッドと関連するショートカットのデフォルトの最大ナビゲーション時間を変更します。

使用法

Page.setDefaultNavigationTimeout(timeout);

引数

  • timeout double#

    ミリ秒単位の最大ナビゲーション時間


setDefaultTimeout

v1.9より前に追加 page.setDefaultTimeout

この設定は、timeoutオプションを受け入れるすべてのメソッドのデフォルトの最大時間を変更します。

注釈

使用法

Page.setDefaultTimeout(timeout);

引数

  • timeout double#

    ミリ秒単位の最大時間。タイムアウトを無効にするには0を渡します。


setExtraHTTPHeaders

v1.9より前に追加 page.setExtraHTTPHeaders

ページが開始するすべてのリクエストに、追加のHTTPヘッダーが送信されます。

注釈

Page.setExtraHTTPHeaders()は、送信されるリクエストのヘッダーの順序を保証しません。

使用法

Page.setExtraHTTPHeaders(headers);

引数

  • headers Map<String, String>#

    すべてのリクエストとともに送信される追加のHTTPヘッダーを含むオブジェクトです。すべてのヘッダー値は文字列である必要があります。

戻り値


setViewportSize

v1.9より前に追加 page.setViewportSize

単一のブラウザで複数のページがある場合、各ページは独自のビューポートサイズを持つことができます。ただし、Browser.newContext()を使用すると、コンテキスト内のすべてのページに対してビューポートサイズ(など)を一度に設定できます。

Page.setViewportSize()はページのサイズを変更します。多くのウェブサイトは携帯電話のサイズ変更を想定していないため、ページに移動する前にビューポートサイズを設定する必要があります。Page.setViewportSize()screenサイズもリセットします。これらのプロパティをより細かく制御する必要がある場合は、screenviewportパラメータを指定してBrowser.newContext()を使用してください。

使用法

Page page = browser.newPage();
page.setViewportSize(640, 480);
page.navigate("https://example.com");

引数

  • width int追加されました: v1.10#

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

  • height int追加されました: v1.10#

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

戻り値


title

v1.9より前に追加 page.title

ページのタイトルを返します。

使用法

Page.title();

戻り値


unroute

v1.9より前に追加 page.unroute

Page.route()で作成されたルートを削除します。handlerが指定されていない場合、urlのすべてのルートを削除します。

使用法

Page.unroute(url);
Page.unroute(url, handler);

引数

  • url String | Pattern | Predicate<String>#

    ルーティング時に一致させる[URL]を受け取るグロブパターン、正規表現パターン、または述語です。

  • handler Consumer<Route> (オプション)#

    リクエストをルーティングするためのオプションのハンドラー関数です。

戻り値


unrouteAll

追加バージョン: v1.41 page.unrouteAll

Page.route()およびPage.routeFromHAR()で作成されたすべてのルートを削除します。

使用法

Page.unrouteAll();

戻り値


url

v1.9より前に追加 page.url

使用法

Page.url();

戻り値


video

v1.9より前に追加 page.video

このページに関連付けられたビデオオブジェクトです。

使用法

Page.video();

戻り値


viewportSize

v1.9より前に追加 page.viewportSize

使用法

Page.viewportSize();

戻り値

  • null | ViewportSize#
    • width int

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

    • height int

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


waitForClose

追加バージョン: v1.11 page.waitForClose

アクションを実行し、ページが閉じるのを待ちます。

使用法

Page.waitForClose(callback);
Page.waitForClose(callback, options);

引数

  • options Page.WaitForCloseOptions (オプション)

    • setTimeout double (オプション)v1.9で追加#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値はBrowserContext.setDefaultTimeout()を使用して変更できます。

  • callback Runnablev1.9で追加#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForCondition

追加されました: v1.32 page.waitForCondition

このメソッドは、条件がtrueを返すまでブロックします。メソッドが条件を待っている間、すべてのPlaywrightイベントがディスパッチされます。

使用法

このメソッドを使用して、ページイベントに依存する条件を待ちます。

List<String> messages = new ArrayList<>();
page.onConsoleMessage(m -> messages.add(m.text()));
page.getByText("Submit button").click();
page.waitForCondition(() -> messages.size() > 3);

引数

  • condition [BooleanSupplier]#

    待機する条件です。

  • options Page.WaitForConditionOptions (オプション)

戻り値


waitForConsoleMessage

v1.9で追加 page.waitForConsoleMessage

アクションを実行し、ページでConsoleMessageがログに記録されるのを待ちます。述語が指定されている場合、ConsoleMessage値をpredicate関数に渡し、predicate(message)が真の値を返すのを待ちます。Page.onConsoleMessage(handler)イベントが発火する前にページが閉じられた場合、エラーをスローします。

使用法

Page.waitForConsoleMessage(callback);
Page.waitForConsoleMessage(callback, options);

引数

  • options Page.WaitForConsoleMessageOptions (オプション)

    • setPredicate Predicate<ConsoleMessage> (オプション)#

      ConsoleMessageオブジェクトを受け取り、待機が解決されるべき場合に真の値を解決します。

    • setTimeout double (オプション)#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値はBrowserContext.setDefaultTimeout()を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForDownload

v1.9で追加 page.waitForDownload

アクションを実行し、新しいDownloadを待ちます。述語が指定されている場合、Download値をpredicate関数に渡し、predicate(download)が真の値を返すのを待ちます。ダウンロードイベントが発火する前にページが閉じられた場合、エラーをスローします。

使用法

Page.waitForDownload(callback);
Page.waitForDownload(callback, options);

引数

  • options Page.WaitForDownloadOptions (オプション)

    • setPredicate Predicate<Download> (オプション)#

      Downloadオブジェクトを受け取り、待機が解決されるべき場合に真の値を解決します。

    • setTimeout double (オプション)#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値はBrowserContext.setDefaultTimeout()を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForFileChooser

v1.9で追加 page.waitForFileChooser

アクションを実行し、新しいFileChooserが作成されるのを待ちます。述語が指定されている場合、FileChooser値をpredicate関数に渡し、predicate(fileChooser)が真の値を返すのを待ちます。ファイルチューザーが開かれる前にページが閉じられた場合、エラーをスローします。

使用法

Page.waitForFileChooser(callback);
Page.waitForFileChooser(callback, options);

引数

  • options Page.WaitForFileChooserOptions (オプション)

    • setPredicate Predicate<FileChooser> (オプション)#

      FileChooserオブジェクトを受け取り、待機が解決されるべき場合に真の値を解決します。

    • setTimeout double (オプション)#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値はBrowserContext.setDefaultTimeout()を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForFunction

v1.9より前に追加 page.waitForFunction

expressionが真の値を返したときに返されます。真の値のJSHandleに解決されます。

使用法

Page.waitForFunction()はビューポートサイズの変更を監視するために使用できます。

import com.microsoft.playwright.*;

public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch();
Page page = browser.newPage();
page.setViewportSize(50, 50);
page.waitForFunction("() => window.innerWidth < 100");
browser.close();
}
}
}

Page.waitForFunction()関数の述語に引数を渡すには

String selector = ".foo";
page.waitForFunction("selector => !!document.querySelector(selector)", selector);

引数

  • expression String#

    ブラウザコンテキストで評価されるJavaScript式。式が関数に評価される場合、その関数は自動的に呼び出されます。

  • arg EvaluationArgument (オプション)#

    expressionに渡すオプションの引数です。

  • options Page.WaitForFunctionOptions (オプション)

    • setPollingInterval double (オプション)#

      指定された場合、関数が実行されるミリ秒単位の間隔として扱われます。デフォルトでは、オプションが指定されていない場合、expressionrequestAnimationFrameコールバックで実行されます。

    • setTimeout double (オプション)#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値は、BrowserContext.setDefaultTimeout()またはPage.setDefaultTimeout()メソッドを使用して変更できます。

戻り値


waitForLoadState

v1.9より前に追加 page.waitForLoadState

要求されたロード状態に到達したときに返されます。

これは、ページが(デフォルトでload)必要なロード状態に到達したときに解決されます。このメソッドが呼び出された時点で、ナビゲーションがコミットされている必要があります。現在のドキュメントがすでに必要な状態に到達している場合、すぐに解決されます。

注釈

ほとんどの場合、Playwrightはすべてのアクションの前に自動的に待機するため、このメソッドは必要ありません。

使用法

page.getByRole(AriaRole.BUTTON).click(); // Click triggers navigation.
page.waitForLoadState(); // The promise resolves after "load" event.
Page popup = page.waitForPopup(() -> {
page.getByRole(AriaRole.BUTTON).click(); // Click triggers a popup.
});
// Wait for the "DOMContentLoaded" event
popup.waitForLoadState(LoadState.DOMCONTENTLOADED);
System.out.println(popup.title()); // Popup is ready to use.

引数

  • state enum LoadState { LOAD, DOMCONTENTLOADED, NETWORKIDLE } (オプション)#

    待機するオプションのロード状態。デフォルトはloadです。現在のドキュメントの読み込み中に状態がすでに到達している場合、メソッドはすぐに解決されます。以下のいずれかです。

    • 'load' - loadイベントが発火するのを待ちます。
    • 'domcontentloaded' - DOMContentLoadedイベントが発火するのを待ちます。
    • 'networkidle' - 非推奨 少なくとも500ミリ秒間ネットワーク接続がないまで待機します。テストにはこのメソッドを使用せず、代わりにWebアサーションに頼って準備状況を評価してください。
  • options Page.WaitForLoadStateOptions (オプション)

戻り値


waitForPopup

v1.9で追加 page.waitForPopup

アクションを実行し、ポップアップPageを待ちます。述語が提供されている場合、[Popup]値をpredicate関数に渡し、predicate(page)が真の値を返すのを待ちます。ポップアップイベントが発火する前にページが閉じられた場合、エラーをスローします。

使用法

Page.waitForPopup(callback);
Page.waitForPopup(callback, options);

引数

  • options Page.WaitForPopupOptions (オプション)

    • setPredicate Predicate<Page> (オプション)#

      Pageオブジェクトを受け取り、待機が解決されるべき場合に真の値を解決します。

    • setTimeout double (オプション)#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値はBrowserContext.setDefaultTimeout()を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForRequest

v1.9より前に追加 page.waitForRequest

一致するリクエストを待機し、それを返します。イベントの詳細については、イベント待機を参照してください。

使用法

// Waits for the next request with the specified url
Request request = page.waitForRequest("https://example.com/resource", () -> {
// Triggers the request
page.getByText("trigger request").click();
});

// Waits for the next request matching some conditions
Request request = page.waitForRequest(request -> "https://example.com".equals(request.url()) && "GET".equals(request.method()), () -> {
// Triggers the request
page.getByText("trigger request").click();
});

引数

  • urlOrPredicate String | Pattern | Predicate<Request>#

    リクエストURLの文字列、正規表現、またはRequestオブジェクトを受け取る述語。setBaseURLがコンテキストオプション経由で提供され、渡されたURLがパスの場合、new URL()コンストラクタ経由でマージされます。

  • options Page.WaitForRequestOptions (オプション)

    • setTimeout double (オプション)#

      ミリ秒単位での最大待機時間。デフォルトは30秒です。0を渡すとタイムアウトを無効にできます。デフォルト値はPage.setDefaultTimeout()メソッドを使用して変更できます。

  • callback Runnablev1.9で追加#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForRequestFinished

v1.12で追加 page.waitForRequestFinished

アクションを実行し、Requestの読み込み完了を待機します。述語が提供されている場合、Request値をpredicate関数に渡し、predicate(request)が真値(truthy value)を返すまで待機します。Page.onRequestFinished(handler)イベントが発生する前にページが閉じられた場合、エラーをスローします。

使用法

Page.waitForRequestFinished(callback);
Page.waitForRequestFinished(callback, options);

引数

  • options Page.WaitForRequestFinishedOptions (オプション)

    • setPredicate Predicate<Request> (オプション)#

      Requestオブジェクトを受け取り、待機が解決されるべきときに真値(truthy value)に解決します。

    • setTimeout double (オプション)#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値はBrowserContext.setDefaultTimeout()を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForResponse

v1.9より前に追加 page.waitForResponse

一致したレスポンスを返します。イベントの詳細については、イベントの待機を参照してください。

使用法

// Waits for the next response with the specified url
Response response = page.waitForResponse("https://example.com/resource", () -> {
// Triggers the response
page.getByText("trigger response").click();
});

// Waits for the next response matching some conditions
Response response = page.waitForResponse(response -> "https://example.com".equals(response.url()) && response.status() == 200 && "GET".equals(response.request().method()), () -> {
// Triggers the response
page.getByText("trigger response").click();
});

引数

  • urlOrPredicate String | Pattern | Predicate<Response>#

    リクエストURL文字列、正規表現、またはResponseオブジェクトを受け取る述語。コンテキストオプションでsetBaseURLが提供され、渡されたURLがパスである場合、それはnew URL()コンストラクタを介して結合されます。

  • options Page.WaitForResponseOptions (オプション)

  • callback Runnablev1.9で追加#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForURL

追加バージョン: v1.11 page.waitForURL

メインフレームが指定されたURLにナビゲートするまで待機します。

使用法

page.click("a.delayed-navigation"); // Clicking the link will indirectly cause a navigation
page.waitForURL("**/target.html");

引数

  • url String | Pattern | Predicate<String>#

    ナビゲーションを待機中に一致させるための、[URL]を受け取るグロブパターン、正規表現パターン、または述語。パラメータがワイルドカード文字を含まない文字列の場合、メソッドはその文字列と完全に一致するURLへのナビゲーションを待機することに注意してください。

  • options Page.WaitForURLOptions (オプション)

    • setTimeout double (オプション)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒で、0 を渡すとタイムアウトを無効にします。デフォルト値は、BrowserContext.setDefaultNavigationTimeout()BrowserContext.setDefaultTimeout()Page.setDefaultNavigationTimeout()、または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (オプション)#

      操作が成功したと見なすタイミング。デフォルトは load です。イベントは以下のいずれかです。

      • 'domcontentloaded' - DOMContentLoaded イベントが発火したときに操作が終了したと見なします。
      • 'load' - load イベントが発火したときに操作が終了したと見なします。
      • 'networkidle' - 非推奨 少なくとも 500 ミリ秒間ネットワーク接続がない場合に操作が終了したと見なします。テストにはこのメソッドを使用せず、代わりに Web アサーションに頼って準備状況を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントの読み込みが開始されたときに操作が終了したと見なします。

戻り値


waitForWebSocket

v1.9で追加 page.waitForWebSocket

アクションを実行し、新しいWebSocketを待機します。述語が提供されている場合、WebSocket値をpredicate関数に渡し、predicate(webSocket)が真値(truthy value)を返すまで待機します。WebSocketイベントが発生する前にページが閉じられた場合、エラーをスローします。

使用法

Page.waitForWebSocket(callback);
Page.waitForWebSocket(callback, options);

引数

  • options Page.WaitForWebSocketOptions (オプション)

    • setPredicate Predicate<WebSocket> (オプション)#

      WebSocketオブジェクトを受け取り、待機が解決されるべきときに真値(truthy value)に解決します。

    • setTimeout double (オプション)#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値はBrowserContext.setDefaultTimeout()を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForWorker

v1.9で追加 page.waitForWorker

アクションを実行し、新しいWorkerを待機します。述語が提供されている場合、Worker値をpredicate関数に渡し、predicate(worker)が真値(truthy value)を返すまで待機します。ワーカーイベントが発生する前にページが閉じられた場合、エラーをスローします。

使用法

Page.waitForWorker(callback);
Page.waitForWorker(callback, options);

引数

  • options Page.WaitForWorkerOptions (オプション)

    • setPredicate Predicate<Worker> (オプション)#

      Workerオブジェクトを受け取り、待機が解決されるべきときに真値(truthy value)に解決します。

    • setTimeout double (オプション)#

      ミリ秒単位の最大待機時間。デフォルトは30000(30秒)です。タイムアウトを無効にするには0を渡します。デフォルト値はBrowserContext.setDefaultTimeout()を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


workers

v1.9より前に追加 page.workers

このメソッドは、ページに関連付けられたすべての専用WebWorkerを返します。

注釈

ServiceWorkerは含まれません。

使用法

Page.workers();

戻り値


プロパティ

clock()

追加バージョン: v1.45 page.clock()

Playwrightには、時刻と時間の経過をモックする機能があります。

使用法

Page.clock()

戻り値


keyboard()

v1.9より前に追加 page.keyboard()

使用法

Page.keyboard()

戻り値


mouse()

v1.9より前に追加 page.mouse()

使用法

Page.mouse()

戻り値


request()

追加バージョン: v1.16 page.request()

このページに関連付けられたAPIテストヘルパー。このメソッドは、ページのコンテキストにおけるBrowserContext.request()と同じインスタンスを返します。詳細については、BrowserContext.request()を参照してください。

使用法

Page.request()

戻り値


touchscreen()

v1.9より前に追加 page.touchscreen()

使用法

Page.touchscreen()

戻り値


イベント

onClose(handler)

v1.9より前に追加 page.onClose(handler)

ページが閉じられたときに発生します。

使用法

Page.onClose(handler)

イベントデータ


onConsoleMessage(handler)

v1.9より前に追加 page.onConsoleMessage(handler)

ページ内のJavaScriptがconsole.logconsole.dirなどのコンソールAPIメソッドのいずれかを呼び出したときに発生します。

console.logに渡された引数は、ConsoleMessageイベントハンドラの引数として利用できます。

使用法

page.onConsoleMessage(msg -> {
for (int i = 0; i < msg.args().size(); ++i)
System.out.println(i + ": " + msg.args().get(i).jsonValue());
});
page.evaluate("() => console.log('hello', 5, { foo: 'bar' })");

イベントデータ


onCrash(handler)

v1.9より前に追加 page.onCrash(handler)

ページがクラッシュしたときに発生します。ブラウザのページは、メモリを過剰に割り当てようとするとクラッシュする可能性があります。ページがクラッシュすると、進行中の操作およびその後の操作は例外をスローします。

クラッシュに対処する最も一般的な方法は、例外をキャッチすることです。

try {
// Crash might happen during a click.
page.click("button");
// Or while waiting for an event.
page.waitForPopup(() -> {});
} catch (PlaywrightException e) {
// When the page crashes, exception message contains "crash".
}

使用法

Page.onCrash(handler)

イベントデータ


onDialog(handler)

v1.9より前に追加 page.onDialog(handler)

alertpromptconfirmbeforeunloadなどのJavaScriptダイアログが表示されたときに発生します。リスナーはダイアログをDialog.accept()またはDialog.dismiss()のいずれかで処理**する必要があります**。そうしないと、ページはダイアログを待ってフリーズし、クリックなどのアクションは決して完了しません。

使用法

page.onDialog(dialog -> {
dialog.accept();
});
注釈

Page.onDialog(handler)またはBrowserContext.onDialog(handler)のリスナーが存在しない場合、すべてのダイアログは自動的に閉じられます。

イベントデータ


onDOMContentLoaded(handler)

v1.9で追加 page.onDOMContentLoaded(handler)

JavaScriptのDOMContentLoadedイベントがディスパッチされたときに発生します。

使用法

Page.onDOMContentLoaded(handler)

イベントデータ


onDownload(handler)

v1.9より前に追加 page.onDownload(handler)

添付ファイルのダウンロードが開始されたときに発生します。ユーザーは、渡されたDownloadインスタンスを介して、ダウンロードされたコンテンツに対する基本的なファイル操作にアクセスできます。

使用法

Page.onDownload(handler)

イベントデータ


onFileChooser(handler)

v1.9で追加 page.onFileChooser(handler)

<input type=file>をクリックした後など、ファイルチューザーが表示されるときに発生します。Playwrightは、FileChooser.setFiles()を使用して入力ファイルをセットすることで応答でき、その後それらをアップロードできます。

page.onFileChooser(fileChooser -> {
fileChooser.setFiles(Paths.get("/tmp/myfile.pdf"));
});

使用法

Page.onFileChooser(handler)

イベントデータ


onFrameAttached(handler)

v1.9で追加 page.onFrameAttached(handler)

フレームがアタッチされたときに発生します。

使用法

Page.onFrameAttached(handler)

イベントデータ


onFrameDetached(handler)

v1.9で追加 page.onFrameDetached(handler)

フレームがデタッチされたときに発生します。

使用法

Page.onFrameDetached(handler)

イベントデータ


onFrameNavigated(handler)

v1.9で追加 page.onFrameNavigated(handler)

フレームが新しいURLにナビゲートされたときに発生します。

使用法

Page.onFrameNavigated(handler)

イベントデータ


onLoad(handler)

v1.9より前に追加 page.onLoad(handler)

JavaScriptのloadイベントがディスパッチされたときに発生します。

使用法

Page.onLoad(handler)

イベントデータ


onPageError(handler)

v1.9で追加 page.onPageError(handler)

ページ内でキャッチされない例外が発生したときに発生します。

// Log all uncaught errors to the terminal
page.onPageError(exception -> {
System.out.println("Uncaught exception: " + exception);
});

// Navigate to a page with an exception.
page.navigate("data:text/html,<script>throw new Error('Test')</script>");

使用法

Page.onPageError(handler)

イベントデータ


onPopup(handler)

v1.9より前に追加 page.onPopup(handler)

ページが新しいタブまたはウィンドウを開いたときに発生します。このイベントは、BrowserContext.onPage(handler)に加えて発生しますが、このページに関連するポップアップに対してのみです。

ページが利用可能になる最も早いタイミングは、初期URLにナビゲートされたときです。例えば、window.open('http://example.com')でポップアップを開くとき、このイベントは「http://example.com」へのネットワークリクエストが完了し、そのレスポンスがポップアップで読み込まれ始めたときに発生します。このネットワークリクエストをルーティング/リッスンしたい場合は、Pageの同様のメソッドではなく、それぞれBrowserContext.route()BrowserContext.onRequest(handler)を使用してください。

Page popup = page.waitForPopup(() -> {
page.getByText("open the popup").click();
});
System.out.println(popup.evaluate("location.href"));
注釈

ページが特定の状態になるまで待機するには、Page.waitForLoadState()を使用します(ほとんどの場合、これが必要になることはありません)。

使用法

Page.onPopup(handler)

イベントデータ


onRequest(handler)

v1.9より前に追加 page.onRequest(handler)

ページがリクエストを発行したときに発生します。requestオブジェクトは読み取り専用です。リクエストを傍受して変更するには、Page.route()またはBrowserContext.route()を参照してください。

使用法

Page.onRequest(handler)

イベントデータ


onRequestFailed(handler)

v1.9で追加 page.onRequestFailed(handler)

リクエストがタイムアウトなどで失敗したときに発生します。

page.onRequestFailed(request -> {
System.out.println(request.url() + " " + request.failure());
});
注釈

404や503などのHTTPエラーレスポンスは、HTTPの観点からは成功したレスポンスであるため、リクエストはPage.onRequestFinished(handler)イベントで完了し、Page.onRequestFailed(handler)では完了しません。リクエストは、クライアントがサーバーからHTTPレスポンスを取得できない場合(例: ネットワークエラー net::ERR_FAILEDによる場合)にのみ失敗と見なされます。

使用法

Page.onRequestFailed(handler)

イベントデータ


onRequestFinished(handler)

v1.9で追加 page.onRequestFinished(handler)

レスポンスボディのダウンロードが完了し、リクエストが正常に終了したときに発生します。成功したレスポンスの場合、イベントのシーケンスはrequestresponserequestfinishedです。

使用法

Page.onRequestFinished(handler)

イベントデータ


onResponse(handler)

v1.9より前に追加 page.onResponse(handler)

リクエストに対するresponseのステータスとヘッダーが受信されたときに発生します。成功したレスポンスの場合、イベントのシーケンスはrequestresponserequestfinishedです。

使用法

Page.onResponse(handler)

イベントデータ


onWebSocket(handler)

v1.9で追加 page.onWebSocket(handler)

WebSocketリクエストが送信されたときに発生します。

使用法

Page.onWebSocket(handler)

イベントデータ


onWorker(handler)

v1.9より前に追加 page.onWorker(handler)

ページによって専用のWebWorkerが生成されたときに発生します。

使用法

Page.onWorker(handler)

イベントデータ


非推奨

check

v1.9より前に追加 page.check
推奨されません

代わりにロケーターベースのLocator.check()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、セレクターに一致する要素を以下の手順でチェックします。

  1. セレクターに一致する要素を見つけます。一致する要素がない場合は、DOMにアタッチされるまで待機します。
  2. 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされている場合、このメソッドは即座に返ります。
  3. setForceオプションが設定されていない限り、一致した要素に対するアクション可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  4. 必要に応じて要素をビューにスクロールします。
  5. Page.mouse()を使用して、要素の中心をクリックします。
  6. 要素がチェックされていることを確認します。そうでない場合、このメソッドは例外をスローします。

指定されたsetTimeout中にすべての手順が完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これを無効にできます。

使用法

Page.check(selector);
Page.check(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.CheckOptions (オプション)

    • setForce boolean (オプション)#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

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

      要素のパディングボックスの左上隅からの相対位置として使用する点。指定しない場合、要素の可視点の一部が使用されます。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

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

      設定されている場合、このメソッドは 操作可能性 チェックのみを実行し、アクションはスキップします。デフォルトは false です。要素がアクションを実行する準備が整うまで待機するが、実際には実行しない場合に役立ちます。

戻り値


click

v1.9より前に追加 page.click
推奨されません

代わりにロケーターベースのLocator.click()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、セレクターに一致する要素を以下の手順でクリックします。

  1. セレクターに一致する要素を見つけます。一致する要素がない場合、一致する要素がDOMにアタッチされるまで待機します。
  2. setForceオプションが設定されていない限り、一致した要素に対するアクション可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  3. 必要に応じて要素をビューにスクロールします。
  4. Page.mouse()を使用して、要素の中心、または指定されたsetPositionをクリックします。
  5. setNoWaitAfterオプションが設定されていない限り、開始されたナビゲーションが成功または失敗するまで待機します。

指定されたsetTimeout中にすべての手順が完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これを無効にできます。

使用法

Page.click(selector);
Page.click(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.ClickOptions (オプション)

    • setButton enum MouseButton { LEFT, RIGHT, MIDDLE } (オプション)#

      デフォルトはleftです。

    • setClickCount int (オプション)#

      デフォルトは1です。UIEvent.detailを参照してください。

    • setDelay double (オプション)#

      mousedownmouseupの間で待機する時間(ミリ秒単位)。デフォルトは0です。

    • setForce boolean (オプション)#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (オプション)#

      押すモディファイアキー。操作中にこれらのモディファイアのみが押されるようにし、その後、現在のモディファイアを元に戻します。指定しない場合、現在押されているモディファイアが使用されます。ControlOrMetaは、WindowsおよびLinuxではControlに、macOSではMetaに解決されます。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは将来的にデフォルトでtrueになります。

      ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページが読み込みを開始するまで待機します。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページへのナビゲーションなど、例外的な場合にのみ必要となります。デフォルトはfalseです。

    • setPosition Position (オプション)#

      要素のパディングボックスの左上隅からの相対位置として使用する点。指定しない場合、要素の可視点の一部が使用されます。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

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

      設定されている場合、このメソッドはアクション可能性チェックのみを実行し、アクションはスキップします。デフォルトはfalseです。要素がアクションの準備が整うまで、アクションを実行せずに待機するのに便利です。modifierstrialに関係なく押され、これらのキーが押されている場合にのみ表示される要素のテストを可能にすることに注意してください。

戻り値


dblclick

v1.9より前に追加 page.dblclick
推奨されません

代わりにロケーターベースのLocator.dblclick()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、セレクターに一致する要素を以下の手順でダブルクリックします。

  1. セレクターに一致する要素を見つけます。一致する要素がない場合、一致する要素がDOMにアタッチされるまで待機します。
  2. setForceオプションが設定されていない限り、一致した要素に対するアクション可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  3. 必要に応じて要素をビューにスクロールします。
  4. Page.mouse()を使用して、要素の中心、または指定されたsetPositionをダブルクリックします。

指定されたsetTimeout中にすべての手順が完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これを無効にできます。

注釈

page.dblclick()は、2つのclickイベントと1つのdblclickイベントをディスパッチします。

使用法

Page.dblclick(selector);
Page.dblclick(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.DblclickOptions (オプション)

    • setButton enum MouseButton { LEFT, RIGHT, MIDDLE } (オプション)#

      デフォルトはleftです。

    • setDelay double (オプション)#

      mousedownmouseupの間で待機する時間(ミリ秒単位)。デフォルトは0です。

    • setForce boolean (オプション)#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (オプション)#

      押すモディファイアキー。操作中にこれらのモディファイアのみが押されるようにし、その後、現在のモディファイアを元に戻します。指定しない場合、現在押されているモディファイアが使用されます。ControlOrMetaは、WindowsおよびLinuxではControlに、macOSではMetaに解決されます。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setPosition Position (オプション)#

      要素のパディングボックスの左上隅からの相対位置として使用する点。指定しない場合、要素の可視点の一部が使用されます。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

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

      設定されている場合、このメソッドはアクション可能性チェックのみを実行し、アクションはスキップします。デフォルトはfalseです。要素がアクションの準備が整うまで、アクションを実行せずに待機するのに便利です。modifierstrialに関係なく押され、これらのキーが押されている場合にのみ表示される要素のテストを可能にすることに注意してください。

戻り値


dispatchEvent

v1.9より前に追加 page.dispatchEvent
推奨されません

ロケーターベースのLocator.dispatchEvent()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

以下のスニペットは要素にclickイベントをディスパッチします。要素の表示状態に関わらず、clickイベントがディスパッチされます。これはelement.click()を呼び出すのと同等です。

使用法

page.dispatchEvent("button#submit", "click");

内部的には、指定されたtypeに基づいてイベントのインスタンスを作成し、eventInitプロパティで初期化し、要素にディスパッチします。イベントはデフォルトでcomposedcancelableであり、バブルします。

eventInitはイベント固有であるため、初期プロパティのリストについてはイベントのドキュメントを参照してください。

イベントにライブオブジェクトを渡したい場合は、プロパティ値としてJSHandleを指定することもできます。

// Note you can only create DataTransfer in Chromium and Firefox
JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()");
Map<String, Object> arg = new HashMap<>();
arg.put("dataTransfer", dataTransfer);
page.dispatchEvent("#source", "dragstart", arg);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • type String#

    DOMイベントのタイプ: "click""dragstart"など。

  • eventInit EvaluationArgument (オプション)#

    オプションのイベント固有の初期化プロパティ。

  • options Page.DispatchEventOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


evalOnSelector

v1.9で追加 page.evalOnSelector
推奨されません

このメソッドは要素が操作性チェックを通過するのを待たないため、不安定なテストにつながる可能性があります。Locator.evaluate()、その他のLocatorヘルパーメソッド、またはWebファーストのアサーションを使用してください。

このメソッドは、ページ内で指定されたセレクターに一致する要素を見つけ、それをexpressionの最初の引数として渡します。セレクターに一致する要素がない場合、メソッドはエラーをスローします。expressionの値を返します。

もしexpressionPromiseを返す場合、Page.evalOnSelector()はそのPromiseが解決するのを待ってからその値を返します。

使用法

String searchValue = (String) page.evalOnSelector("#search", "el => el.value");
String preloadHref = (String) page.evalOnSelector("link[rel=preload]", "el => el.href");
String html = (String) page.evalOnSelector(".main-container", "(e, suffix) => e.outerHTML + suffix", "hello");

引数

  • selector String#

    クエリ対象のセレクター。

  • expression String#

    ブラウザコンテキストで評価されるJavaScript式。式が関数に評価される場合、その関数は自動的に呼び出されます。

  • arg EvaluationArgument (オプション)#

    expressionに渡すオプション引数。

  • options Page.EvalOnSelectorOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

戻り値


evalOnSelectorAll

v1.9で追加 page.evalOnSelectorAll
推奨されません

ほとんどの場合、Locator.evaluateAll()、その他のLocatorヘルパーメソッド、およびWebファーストのアサーションの方が優れています。

このメソッドは、ページ内で指定されたセレクターに一致するすべての要素を見つけ、一致する要素の配列をexpressionの最初の引数として渡します。expressionの呼び出し結果を返します。

もしexpressionPromiseを返す場合、Page.evalOnSelectorAll()はそのPromiseが解決するのを待ってからその値を返します。

使用法

boolean divCounts = (boolean) page.evalOnSelectorAll("div", "(divs, min) => divs.length >= min", 10);

引数

  • selector String#

    クエリ対象のセレクター。

  • expression String#

    ブラウザコンテキストで評価されるJavaScript式。式が関数に評価される場合、その関数は自動的に呼び出されます。

  • arg EvaluationArgument (オプション)#

    expressionに渡すオプション引数。

戻り値


fill

v1.9より前に追加 page.fill
推奨されません

ロケーターベースのLocator.fill()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、セレクターに一致する要素を待ち、操作性チェックを待ち、要素にフォーカスを合わせ、内容を埋め、埋めた後にinputイベントをトリガーします。入力フィールドをクリアするために空の文字列を渡すこともできます。

ターゲット要素が<input><textarea>、または[contenteditable]要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連するcontrolを持つ<label>要素内にある場合、代わりにそのコントロールが埋められます。

詳細なキーボードイベントを送信するには、Locator.pressSequentially()を使用してください。

使用法

Page.fill(selector, value);
Page.fill(selector, value, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • value String#

    <input><textarea>、または[contenteditable]要素に埋める値。

  • options Page.FillOptions (オプション)

    • setForce boolean (オプション)v1.13で追加#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


focus

v1.9より前に追加 page.focus
推奨されません

ロケーターベースのLocator.focus()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、セレクターに一致する要素を取得し、フォーカスします。セレクターに一致する要素がない場合、一致する要素がDOMに現れるまで待機します。

使用法

Page.focus(selector);
Page.focus(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.FocusOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


getAttribute

v1.9より前に追加 page.getAttribute
推奨されません

ロケーターベースのLocator.getAttribute()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素の属性値を返します。

使用法

Page.getAttribute(selector, name);
Page.getAttribute(selector, name, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • name String#

    値を取得する属性名。

  • options Page.GetAttributeOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


hover

v1.9より前に追加 page.hover
推奨されません

ロケーターベースのLocator.hover()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、次の手順を実行してセレクターに一致する要素の上にマウスを移動させます。

  1. セレクターに一致する要素を見つけます。要素がない場合、一致する要素がDOMにアタッチされるまで待機します。
  2. 一致した要素に対する操作性チェックを待ちます。setForceオプションが設定されている場合を除きます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  3. 必要に応じて要素をビューにスクロールします。
  4. Page.mouse()を使用して、要素の中心、または指定されたsetPositionの上にマウスを移動させます。

すべてのステップが指定されたsetTimeout中に完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、この機能は無効になります。

使用法

Page.hover(selector);
Page.hover(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.HoverOptions (オプション)

    • setForce boolean (オプション)#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (オプション)#

      押すモディファイアキー。操作中にこれらのモディファイアのみが押されるようにし、その後、現在のモディファイアを元に戻します。指定しない場合、現在押されているモディファイアが使用されます。ControlOrMetaは、WindowsおよびLinuxではControlに、macOSではMetaに解決されます。

    • setNoWaitAfter boolean (オプション)追加されました: v1.28#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setPosition Position (オプション)#

      要素のパディングボックスの左上隅からの相対位置として使用する点。指定しない場合、要素の可視点の一部が使用されます。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

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

      設定されている場合、このメソッドはアクション可能性チェックのみを実行し、アクションはスキップします。デフォルトはfalseです。要素がアクションの準備が整うまで、アクションを実行せずに待機するのに便利です。modifierstrialに関係なく押され、これらのキーが押されている場合にのみ表示される要素のテストを可能にすることに注意してください。

戻り値


innerHTML

v1.9より前に追加 page.innerHTML
推奨されません

ロケーターベースのLocator.innerHTML()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

element.innerHTMLを返します。

使用法

Page.innerHTML(selector);
Page.innerHTML(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.InnerHTMLOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


innerText

v1.9より前に追加 page.innerText
推奨されません

ロケーターベースのLocator.innerText()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

element.innerTextを返します。

使用法

Page.innerText(selector);
Page.innerText(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.InnerTextOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


inputValue

v1.13で追加 page.inputValue
推奨されません

ロケーターベースのLocator.inputValue()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

選択された<input><textarea>、または<select>要素のinput.valueを返します。

入力要素でない場合はスローします。ただし、要素が関連するcontrolを持つ<label>要素内にある場合、コントロールの値を返します。

使用法

Page.inputValue(selector);
Page.inputValue(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.InputValueOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


isChecked

v1.9より前に追加 page.isChecked
推奨されません

ロケーターベースのLocator.isChecked()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素がチェックされているかどうかを返します。要素がチェックボックスまたはラジオ入力でない場合、スローします。

使用法

Page.isChecked(selector);
Page.isChecked(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.IsCheckedOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


isDisabled

v1.9より前に追加 page.isDisabled
推奨されません

ロケーターベースのLocator.isDisabled()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素が無効になっているかどうかを返します。enabledの反対です。

使用法

Page.isDisabled(selector);
Page.isDisabled(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.IsDisabledOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


isEditable

v1.9より前に追加 page.isEditable
推奨されません

ロケーターベースのLocator.isEditable()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素が編集可能かどうかを返します。

使用法

Page.isEditable(selector);
Page.isEditable(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.IsEditableOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


isEnabled

v1.9より前に追加 page.isEnabled
推奨されません

ロケーターベースのLocator.isEnabled()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素が有効になっているかどうかを返します。

使用法

Page.isEnabled(selector);
Page.isEnabled(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.IsEnabledOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


isHidden

v1.9より前に追加 page.isHidden
推奨されません

ロケーターベースのLocator.isHidden()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素が非表示になっているかどうかを返します。可視の反対です。どの要素とも一致しないセレクターは非表示とみなされます。

使用法

Page.isHidden(selector);
Page.isHidden(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.IsHiddenOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      非推奨

      このオプションは無視されます。Page.isHidden()は要素が非表示になるのを待たずにすぐに返します。

戻り値


isVisible

v1.9より前に追加 page.isVisible
推奨されません

ロケーターベースのLocator.isVisible()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素が可視であるかどうかを返します。どの要素とも一致しないセレクターは不可視とみなされます。

使用法

Page.isVisible(selector);
Page.isVisible(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.IsVisibleOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      非推奨

      このオプションは無視されます。Page.isVisible()は要素が可視になるのを待たずにすぐに返します。

戻り値


press

v1.9より前に追加 page.press
推奨されません

ロケーターベースのLocator.press()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素にフォーカスを合わせ、次にKeyboard.down()Keyboard.up()を使用します。

keyは、意図するkeyboardEvent.keyの値、またはテキストを生成するための単一の文字を指定できます。key値のスーパーセットはこちらで確認できます。キーの例は次のとおりです。

F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUpなど。

次の修飾子ショートカットもサポートされています: ShiftControlAltMetaShiftLeftControlOrMetaControlOrMetaはWindowsおよびLinuxではControlに、macOSではMetaに解決されます。

Shiftを押しながら入力すると、keyに対応するテキストが大文字で入力されます。

keyが単一の文字の場合、大文字と小文字が区別されるため、値aAはそれぞれ異なるテキストを生成します。

key: "Control+o"key: "Control++key: "Control+Shift+T"のようなショートカットもサポートされています。修飾子とともに指定された場合、修飾子が押され、その後のキーが押されている間も押され続けます。

使用法

Page page = browser.newPage();
page.navigate("https://keycode.info");
page.press("body", "A");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("A.png")));
page.press("body", "ArrowLeft");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("ArrowLeft.png" )));
page.press("body", "Shift+O");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("O.png" )));

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • key String#

    押すキーの名前、または生成する文字。例: ArrowLeftまたはa

  • options Page.PressOptions (オプション)

    • setDelay double (オプション)#

      keydownkeyupの間の待機時間(ミリ秒単位)。デフォルトは0です。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは将来的にデフォルトでtrueになります。

      ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページが読み込みを開始するまで待機します。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページへのナビゲーションなど、例外的な場合にのみ必要となります。デフォルトはfalseです。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


querySelector

v1.9で追加 page.querySelector
推奨されません

ロケーターベースのPage.locator()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、ページ内で指定されたセレクターに一致する要素を見つけます。セレクターに一致する要素がない場合、戻り値はnullに解決されます。ページ上の要素を待機するには、Locator.waitFor()を使用してください。

使用法

Page.querySelector(selector);
Page.querySelector(selector, options);

引数

  • selector String#

    クエリ対象のセレクター。

  • options Page.QuerySelectorOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

戻り値


querySelectorAll

v1.9で追加 page.querySelectorAll
推奨されません

ロケーターベースのPage.locator()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、ページ内で指定されたセレクターに一致するすべての要素を見つけます。セレクターに一致する要素がない場合、戻り値は[]に解決されます。

使用法

Page.querySelectorAll(selector);

引数

  • selector String#

    クエリ対象のセレクター。

戻り値


selectOption

v1.9より前に追加 page.selectOption
推奨されません

ロケーターベースのLocator.selectOption()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、セレクターに一致する要素を待ち、操作性チェックを待ち、指定されたすべてのオプションが<select>要素内に存在し、これらのオプションが選択されるまで待機します。

ターゲット要素が<select>要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連するcontrolを持つ<label>要素内にある場合、代わりにそのコントロールが使用されます。

正常に選択されたオプション値の配列を返します。

提供されたすべてのオプションが選択されると、changeイベントとinputイベントをトリガーします。

使用法

// Single selection matching the value or label
page.selectOption("select#colors", "blue");
// single selection matching both the value and the label
page.selectOption("select#colors", new SelectOption().setLabel("Blue"));
// multiple selection
page.selectOption("select#colors", new String[] {"red", "green", "blue"});

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • values null | String | ElementHandle | String[] | SelectOption | ElementHandle[] | SelectOption[]#

    • setValue String (オプション)

      option.valueで一致します。オプション。

    • setLabel String (オプション)

      option.labelで一致します。オプション。

    • setIndex int (オプション)

      インデックスで一致します。オプション。

    選択するオプション。<select>multiple属性を持つ場合、一致するすべてのオプションが選択され、そうでない場合は渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。文字列値は値とラベルの両方に一致します。すべての指定されたプロパティが一致する場合、オプションは一致していると見なされます。

  • options Page.SelectOptionOptions (オプション)

    • setForce boolean (オプション)v1.13で追加#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


setChecked

v1.15で追加 page.setChecked
推奨されません

ロケーターベースのLocator.setChecked()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、次の手順を実行してセレクターに一致する要素をチェックまたはアンチェックします。

  1. セレクターに一致する要素を見つけます。要素がない場合、一致する要素がDOMにアタッチされるまで待機します。
  2. 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドはスローします。
  3. 要素がすでに正しいチェック状態にある場合、このメソッドはすぐに返します。
  4. 一致した要素に対する操作性チェックを待ちます。setForceオプションが設定されている場合を除きます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  5. 必要に応じて要素をビューにスクロールします。
  6. Page.mouse()を使用して、要素の中心をクリックします。
  7. 要素が現在チェックされているか、アンチェックされていることを確認します。そうでない場合、このメソッドはスローします。

すべてのステップが指定されたsetTimeout中に完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、この機能は無効になります。

使用法

Page.setChecked(selector, checked);
Page.setChecked(selector, checked, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • checked boolean#

    チェックボックスをチェックするか、アンチェックするか。

  • options Page.SetCheckedOptions (オプション)

    • setForce boolean (オプション)#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setPosition Position (オプション)#

      要素のパディングボックスの左上隅からの相対位置として使用する点。指定しない場合、要素の可視点の一部が使用されます。

    • setStrict boolean (オプション)#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setTrial boolean (オプション)#

      設定されている場合、このメソッドは 操作可能性 チェックのみを実行し、アクションはスキップします。デフォルトは false です。要素がアクションを実行する準備が整うまで待機するが、実際には実行しない場合に役立ちます。

戻り値


setInputFiles

v1.9より前に追加 page.setInputFiles
推奨されません

ロケーターベースのLocator.setInputFiles()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

ファイル入力の値をこれらのファイルパスまたはファイルに設定します。filePathsの一部が相対パスの場合、それらは現在の作業ディレクトリを基準に解決されます。空の配列の場合、選択されたファイルをクリアします。[webkitdirectory]属性を持つ入力の場合、単一のディレクトリパスのみがサポートされます。

このメソッドは、セレクター入力要素を指すことを想定しています。ただし、要素が関連するcontrolを持つ<label>要素内にある場合、代わりにそのコントロールをターゲットとします。

使用法

Page.setInputFiles(selector, files);
Page.setInputFiles(selector, files, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • files Path | Path[] | FilePayload | FilePayload[]#

    • setName String

      ファイル名

    • setMimeType String

      ファイルの種類

    • setBuffer byte[]

      ファイルの内容

  • options Page.SetInputFilesOptions (オプション)

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


tap

v1.9より前に追加 page.tap
推奨されません

ロケーターベースのLocator.tap()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、次の手順を実行してセレクターに一致する要素をタップします。

  1. セレクターに一致する要素を見つけます。要素がない場合、一致する要素がDOMにアタッチされるまで待機します。
  2. 一致した要素に対する操作性チェックを待ちます。setForceオプションが設定されている場合を除きます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  3. 必要に応じて要素をビューにスクロールします。
  4. Page.touchscreen()を使用して、要素の中心、または指定されたsetPositionをタップします。

すべてのステップが指定されたsetTimeout中に完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、この機能は無効になります。

注釈

ブラウザコンテキストのsetHasTouchオプションがfalseの場合、Page.tap()メソッドはスローします。

使用法

Page.tap(selector);
Page.tap(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.TapOptions (オプション)

    • setForce boolean (オプション)#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (オプション)#

      押すモディファイアキー。操作中にこれらのモディファイアのみが押されるようにし、その後、現在のモディファイアを元に戻します。指定しない場合、現在押されているモディファイアが使用されます。ControlOrMetaは、WindowsおよびLinuxではControlに、macOSではMetaに解決されます。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setPosition Position (オプション)#

      要素のパディングボックスの左上隅からの相対位置として使用する点。指定しない場合、要素の可視点の一部が使用されます。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

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

      設定されている場合、このメソッドはアクション可能性チェックのみを実行し、アクションはスキップします。デフォルトはfalseです。要素がアクションの準備が整うまで、アクションを実行せずに待機するのに便利です。modifierstrialに関係なく押され、これらのキーが押されている場合にのみ表示される要素のテストを可能にすることに注意してください。

戻り値


textContent

v1.9より前に追加 page.textContent
推奨されません

ロケーターベースのLocator.textContent()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

element.textContentを返します。

使用法

Page.textContent(selector);
Page.textContent(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.TextContentOptions (オプション)

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


type

v1.9より前に追加 page.type
非推奨

ほとんどの場合、代わりにLocator.fill()を使用する必要があります。ページに特別なキーボード処理がある場合にのみ、キーを1つずつ押す必要があります。この場合はLocator.pressSequentially()を使用してください。

テキスト内の各文字に対してkeydownkeypress/input、およびkeyupイベントを送信します。page.typeは、詳細なキーボードイベントを送信するために使用できます。フォームフィールドに値を入力するには、Page.fill()を使用してください。

ControlArrowDownのような特殊なキーを押すには、Keyboard.press()を使用してください。

使用法

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • text String#

    フォーカスされた要素に入力するテキスト。

  • options Page.TypeOptions (オプション)

    • setDelay double (オプション)#

      キー押下間の待機時間(ミリ秒単位)。デフォルトは0です。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


uncheck

v1.9より前に追加 page.uncheck
推奨されません

ロケーターベースのLocator.uncheck()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、次の手順を実行してセレクターに一致する要素をアンチェックします。

  1. セレクターに一致する要素を見つけます。要素がない場合、一致する要素がDOMにアタッチされるまで待機します。
  2. 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドはスローします。要素がすでにアンチェックされている場合、このメソッドはすぐに返します。
  3. 一致した要素に対する操作性チェックを待ちます。setForceオプションが設定されている場合を除きます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  4. 必要に応じて要素をビューにスクロールします。
  5. Page.mouse()を使用して、要素の中心をクリックします。
  6. 要素が現在アンチェックされていることを確認します。そうでない場合、このメソッドはスローします。

すべてのステップが指定されたsetTimeout中に完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、この機能は無効になります。

使用法

Page.uncheck(selector);
Page.uncheck(selector, options);

引数

  • selector String#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合、最初の要素が使用されます。

  • options Page.UncheckOptions (オプション)

    • setForce boolean (オプション)#

      操作可能性 チェックをバイパスするかどうか。デフォルトは false です。

    • setNoWaitAfter boolean (オプション)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

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

      要素のパディングボックスの左上隅からの相対位置として使用する点。指定しない場合、要素の可視点の一部が使用されます。

    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (オプション)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

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

      設定されている場合、このメソッドは 操作可能性 チェックのみを実行し、アクションはスキップします。デフォルトは false です。要素がアクションを実行する準備が整うまで待機するが、実際には実行しない場合に役立ちます。

戻り値


waitForNavigation

v1.9より前に追加 page.waitForNavigation
非推奨

このメソッドは本質的に競合状態になる可能性があるので、代わりにPage.waitForURL()を使用してください。

メインフレームのナビゲーションを待ち、メインリソースの応答を返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトの応答で解決されます。異なるアンカーへのナビゲーションまたは履歴APIの使用によるナビゲーションの場合、ナビゲーションはnullで解決されます。

使用法

これは、ページが新しいURLに移動するか、リロードされたときに解決されます。ページを間接的にナビゲートさせるコードを実行する場合に役立ちます。例:クリックターゲットには、setTimeoutからナビゲーションをトリガーするonclickハンドラーがあります。この例を考慮してください。

// The method returns after navigation has finished
Response response = page.waitForNavigation(() -> {
// This action triggers the navigation after a timeout.
page.getByText("Navigate after timeout").click();
});
注釈

History APIを使用してURLを変更することは、ナビゲーションと見なされます。

引数

  • options Page.WaitForNavigationOptions (オプション)

    • setTimeout double (オプション)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒で、0 を渡すとタイムアウトを無効にします。デフォルト値は、BrowserContext.setDefaultNavigationTimeout()BrowserContext.setDefaultTimeout()Page.setDefaultNavigationTimeout()、または Page.setDefaultTimeout() メソッドを使用して変更できます。

    • setUrl String | Pattern | Predicate<String> (オプション)#

      ナビゲーションを待機中に一致させるための、[URL]を受け取るグロブパターン、正規表現パターン、または述語。パラメータがワイルドカード文字を含まない文字列の場合、メソッドはその文字列と完全に一致するURLへのナビゲーションを待機することに注意してください。

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (オプション)#

      操作が成功したと見なすタイミング。デフォルトは load です。イベントは以下のいずれかです。

      • 'domcontentloaded' - DOMContentLoaded イベントが発火したときに操作が終了したと見なします。
      • 'load' - load イベントが発火したときに操作が終了したと見なします。
      • 'networkidle' - 非推奨 少なくとも 500 ミリ秒間ネットワーク接続がない場合に操作が終了したと見なします。テストにはこのメソッドを使用せず、代わりに Web アサーションに頼って準備状況を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントの読み込みが開始されたときに操作が終了したと見なします。
  • callback Runnablev1.9で追加#

    イベントをトリガーするアクションを実行するコールバックです。

戻り値


waitForSelector

v1.9より前に追加 page.waitForSelector
推奨されません

可視性をアサートするWebアサーション、またはロケーターベースのLocator.waitFor()を使用してください。ロケーターの詳細についてはこちらをご覧ください。

セレクターで指定された要素がsetStateオプションを満たしたときに返します。hiddenまたはdetachedを待機している場合はnullを返します。

注釈

Playwrightはアクションを実行する前に要素が準備されるまで自動的に待機します。LocatorオブジェクトとWebファーストのアサーションを使用することで、コードはセレクターを待機する必要がなくなります。

セレクターsetStateオプション(DOMからの出現/消滅、または可視/非可視化)を満たすまで待機します。メソッド呼び出し時にセレクターがすでに条件を満たしている場合、メソッドはすぐに返します。セレクターがsetTimeoutミリ秒の間条件を満たさない場合、関数はスローされます。

使用法

このメソッドはナビゲーション全体で動作します。

import com.microsoft.playwright.*;

public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType chromium = playwright.chromium();
Browser browser = chromium.launch();
Page page = browser.newPage();
for (String currentURL : Arrays.asList("https://google.com", "https://bbc.com")) {
page.navigate(currentURL);
ElementHandle element = page.waitForSelector("img");
System.out.println("Loaded image: " + element.getAttribute("src"));
}
browser.close();
}
}
}

引数

  • selector String#

    クエリ対象のセレクター。

  • options Page.WaitForSelectorOptions (オプション)

    • setState enum WaitForSelectorState { ATTACHED, DETACHED, VISIBLE, HIDDEN } (省略可能)#

      デフォルトは'visible'です。以下のいずれかの値を指定できます。

      • 'attached' - 要素がDOM内に存在することを待機します。
      • 'detached' - 要素がDOM内に存在しないことを待機します。
      • 'visible' - 要素が空でないバウンディングボックスを持ち、visibility:hiddenが設定されていないことを待機します。コンテンツがない要素やdisplay:noneが設定された要素は空のバウンディングボックスを持ち、可視とは見なされないことに注意してください。
      • 'hidden' - 要素がDOMからデタッチされるか、空のバウンディングボックスを持つか、またはvisibility:hiddenが設定されていることを待機します。これは'visible'オプションとは逆の動作です。
    • setStrict boolean (オプション)v1.14で追加#

      trueの場合、呼び出しはセレクタが単一の要素に解決されることを要求します。指定されたセレクタが複数の要素に解決される場合、呼び出しは例外をスローします。

    • setTimeout double (省略可能)#

      ミリ秒単位の最大時間。デフォルトは 30000 (30秒) です。0 を渡すとタイムアウトを無効にします。デフォルト値は BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。

戻り値


waitForTimeout

v1.9より前に追加 page.waitForTimeout
推奨されません

本番環境でタイムアウトを待機しないでください。時間を待機するテストは、本質的に不安定です。Locatorアクションや、自動的に待機するウェブアサーションを使用してください。

指定されたミリ秒単位のタイムアウトを待機します。

page.waitForTimeout()はデバッグにのみ使用すべきであることに注意してください。本番環境でタイマーを使用するテストは、不安定になる可能性があります。代わりに、ネットワークイベント、セレクターの可視化などのシグナルを使用してください。

使用法

// wait for 1 second
page.waitForTimeout(1000);

引数

  • timeout double#

    待機するタイムアウト値

戻り値