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

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

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

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

留意すべき点

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

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

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

別の例は、マウスアクションのシーケンスで、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>#

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

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

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

      デフォルトでは、ハンドラーを呼び出した後、Playwright はオーバーレイが非表示になるまで待機し、その後でのみ、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 の場合、unload ハンドラーを実行せず、ページが閉じるのを待ちます。setRunBeforeUnloadtrue の場合、メソッドは unload ハンドラーを実行しますが、ページが閉じるのを待ちません

デフォルトでは、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

doctype を含むページの完全な 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 メディアタイプ を変更するか、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() に渡された関数が Serializable でない値を返す場合、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 を実行し、callback の戻り値に解決される Promise を返します。callbackPromise を返す場合、それは await されます。

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 を実行し、callback の戻り値に解決される Promise を返します。

callbackPromise を返す場合、それは await されます。

コンテキスト全体の公開関数については、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 String追加: v1.9#

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

戻り値


frameByUrl

追加: v1.9 page.frameByUrl

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

使用例

Page.frameByUrl(url);

引数

  • url String | Pattern | Predicate<String>#

    フレームの url を [URL] オブジェクトとして受け取る、glob パターン、regex パターン、または predicate。

戻り値


frameLocator

Added in: 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

Added in: v1.27 page.getByAltText

alt テキストによって要素を特定できます。

使用例

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

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

引数

  • text String | Pattern#

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

  • options Page.GetByAltTextOptions (optional)

    • setExact boolean (optional)#

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

戻り値


getByLabel

Added in: 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 (optional)

    • setExact boolean (optional)#

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

戻り値


getByPlaceholder

Added in: 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 (optional)

    • setExact boolean (optional)#

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

戻り値


getByRole

Added in: v1.27 page.getByRole

ARIA roleARIA 属性、および アクセシブルネームによって要素を特定できます。

使用例

次の 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 (optional)

    • setChecked boolean (optional)#

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

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

    • setDisabled boolean (optional)#

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

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

    • setExact boolean (optional)Added in: v1.28#

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

    • setExpanded boolean (optional)#

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

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

    • setIncludeHidden boolean (optional)#

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

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

    • setLevel int (optional)#

      通常、ロール headinglistitemrowtreeitem に存在する数値属性で、<h1>-<h6> 要素のデフォルト値があります。

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

    • setName String | Pattern (optional)#

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

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

    • setPressed boolean (optional)#

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

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

    • setSelected boolean (optional)#

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

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

戻り値

詳細

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

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


getByTestId

Added in: 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

Added in: 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 (optional)

    • setExact boolean (optional)#

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

戻り値

詳細

テキストによるマッチングは、完全一致の場合でも常に空白文字を正規化します。例えば、複数のスペースを 1 つにしたり、改行をスペースにしたり、先頭と末尾の空白文字を無視したりします。

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


getByTitle

Added in: v1.27 page.getByTitle

title 属性によって要素を特定できます。

使用例

次の DOM 構造を考えます。

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

title テキストで特定した後、問題の数をチェックできます。

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

引数

  • text String | Pattern#

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

  • options Page.GetByTitleOptions (optional)

    • setExact boolean (optional)#

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

戻り値


goBack

v1.9 で追加 page.goBack

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

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

使用例

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

引数

  • options Page.GoBackOptions (optional)
    • setTimeout double (optional)#

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

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (optional)#

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

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

戻り値


goForward

v1.9 で追加 page.goForward

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

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

使用例

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

引数

  • options Page.GoForwardOptions (optional)
    • setTimeout double (optional)#

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

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (optional)#

      操作が成功したと見なすタイミング。デフォルトは 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 (optional)

    • setHas Locator (optional)#

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

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

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

    • setHasNot Locator (optional)Added in: v1.33#

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

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

    • setHasNotText String | Pattern (optional)Added in: v1.33#

      指定されたテキストを内部のどこか(子要素または子孫要素の可能性あり)に含まない要素に一致します。string が渡されると、一致は大文字と小文字を区別せず、部分文字列を検索します。

    • setHasText String | Pattern (optional)#

      指定されたテキストを内部のどこか(子要素または子孫要素の可能性あり)に含む要素に一致します。string が渡されると、一致は大文字と小文字を区別せず、部分文字列を検索します。例えば、"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 ドキュメントへのナビゲーションをサポートしていません。アップストリームの問題を参照してください。

使用例

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

引数

  • url String#

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

  • options Page.NavigateOptions (optional)

    • setReferer String (optional)#

      リファラーヘッダー値。指定された場合、Page.setExtraHTTPHeaders() によって設定されたリファラーヘッダー値よりも優先されます。

    • setTimeout double (optional)#

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

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (optional)#

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

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

戻り値


onceDialog

Added in: v1.10 page.onceDialog

1 回限りの 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

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

使用例

Page.opener();

戻り値


pause

追加: v1.9 page.pause

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

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

このメソッドでは、Playwright がヘッダーモードで、setHeadless オプションが false の状態で開始されている必要があります。

使用例

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 (optional)
    • setDisplayHeaderFooter boolean (optional)#

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

    • setFooterTemplate String (optional)#

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

    • setFormat String (optional)#

      用紙フォーマット。設定した場合、setWidth または setHeight オプションよりも優先されます。デフォルトは 'Letter' です。

    • setHeaderTemplate String (optional)#

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

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

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

    • setLandscape boolean (optional)#

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

    • setMargin Margin (optional)#

      • setTop String (optional)

        上マージン。単位ラベル付きの値を受け入れます。デフォルトは 0 です。

      • setRight String (optional)

        右マージン。単位ラベル付きの値を受け入れます。デフォルトは 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サイズを、setWidthsetHeight、または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()は、Service Workerによってインターセプトされたリクエストをインターセプトしません。この問題を参照してください。setServiceWorkers'block'に設定して、リクエストインターセプトを使用する場合はService Workerを無効にすることをお勧めします。

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>#

    ルーティング中に一致させるglobパターン、正規表現パターン、または[URL]を受け取る述語。setBaseURLがコンテキストオプションを介して提供され、渡されたURLがパスである場合、new URL()コンストラクターを介してマージされます。

  • handler Consumer<Route>#

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

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

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

      ルートを使用する頻度。デフォルトでは、毎回使用されます。

戻り値


routeFromHAR

追加: v1.23 page.routeFromHAR

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

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

使用例

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からのリプレイ時に使用されないサイズ、タイミング、ページ、Cookie、セキュリティ、およびその他のタイプのHAR情報が省略されます。デフォルトはminimalです。

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

      リクエストURLに一致するglobパターン、正規表現、または述語。パターンに一致するURLを持つリクエストのみがHARファイルから提供されます。指定しない場合、すべてのリクエストは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をルーティングするハンドラー関数。

戻り値


screenshot

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

使用例

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

引数

  • width intAdded in: v1.10#

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

  • height intAdded in: 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>#

    ルーティング中に一致させるglobパターン、正規表現パターン、または[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

このページに関連付けられたVideoオブジェクト。

使用例

Page.video();

戻り値


viewportSize

v1.9 で追加 page.viewportSize

使用例

Page.viewportSize();

戻り値

  • null | ViewportSize#
    • width int

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

    • height int

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


waitForClose

追加: v1.11 page.waitForClose

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

使用例

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

引数

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

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

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

  • callback Runnable追加: v1.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 (オプション)

    • setTimeout double (オプション)#

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

戻り値


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 を待ちます。predicate が提供された場合、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 が作成されるのを待ちます。predicate が提供された場合、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() 関数の predicate に引数を渡すには

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 ミリ秒間なくなるまで待ちます。テストにはこのメソッドを使用しないでください。代わりに、準備状態を評価するためにウェブアサーションに依存してください。
  • options Page.WaitForLoadStateOptions (オプション)

戻り値


waitForPopup

追加: v1.9 page.waitForPopup

アクションを実行し、ポップアップ Page を待ちます。predicate が提供された場合、[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 オブジェクトを受け取る predicate。コンテキストオプションを介して setBaseURL が提供され、渡された URL がパスの場合、new URL() コンストラクターを介してマージされます。

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

    • setTimeout double (オプション)#

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

  • callback Runnable追加: v1.9#

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

戻り値


waitForRequestFinished

追加: v1.12 page.waitForRequestFinished

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

使用例

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

引数

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

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

      Request オブジェクトを受け取り、待機を解決すべき時に真偽値を返します。

    • 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 オブジェクトを受け取る predicate。コンテキストオプションを介して setBaseURL が提供され、渡された URL がパスの場合、new URL() コンストラクターを介してマージされます。

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

  • callback Runnable追加: v1.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] を受け取る predicate。パラメータがワイルドカード文字を含まない文字列である場合、メソッドは 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 を待ちます。predicate が提供された場合、WebSocket 値を predicate 関数に渡し、predicate(webSocket) が真偽値を返すのを待ちます。WebSocket イベントが発生する前にページが閉じられた場合、エラーをスローします。

使用例

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

引数

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

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

      WebSocket オブジェクトを受け取り、待機を解決すべき時に真偽値を返します。

    • setTimeout double (オプション)#

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

  • callback Runnable#

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

戻り値


waitForWorker

追加: v1.9 page.waitForWorker

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

使用例

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

引数

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

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

      Worker オブジェクトを受け取り、待機を解決すべき時に真偽値を返します。

    • 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" へのネットワークリクエストが完了し、そのレスポンスがポップアップでのロードを開始したときに、このイベントが発生します。このネットワークリクエストをルーティング/リッスンする場合は、BrowserContext.route() および BrowserContext.onRequest(handler) を、Page の同様のメソッドの代わりに使用してください。

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)

レスポンスボディのダウンロード後にリクエストが正常に完了した場合に発行されます。成功したレスポンスの場合、イベントのシーケンスは requestresponse、および requestfinished です。

使用例

Page.onRequestFinished(handler)

イベントデータ


onResponse(handler)

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

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

使用例

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() を代わりに使用してください。ロケーター について詳しくはこちらをお読みください。

このメソッドは、次の手順を実行して selector に一致する要素をチェックします。

  1. selector に一致する要素を見つけます。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
  2. 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされている場合、このメソッドはすぐに返ります。
  3. actionability チェックが 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() を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、次の手順を実行して、selector に一致する要素をクリックします。

  1. selector に一致する要素を検索します。一致する要素がない場合は、一致する要素が 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 です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードの modifiers は、これらのキーが押されたときにのみ表示される要素をテストできるように、trial に関係なく押されることに注意してください。

戻り値


dblclick

v1.9 で追加 page.dblclick
非推奨

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

このメソッドは、次の手順を実行して、selector に一致する要素をダブルクリックします。

  1. selector に一致する要素を検索します。一致する要素がない場合は、一致する要素が 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 です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードの modifiers は、これらのキーが押されたときにのみ表示される要素をテストできるように、trial に関係なく押されることに注意してください。

戻り値


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-first アサーションを使用してください。

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

expressionPromise を返す場合、Page.evalOnSelector() はプロミスが解決されるのを待ってその値を返します。

使用例

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-first アサーションの方が優れています。

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

expressionPromise を返す場合、Page.evalOnSelectorAll() はプロミスが解決されるのを待ってその値を返します。

使用例

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() を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、selector に一致する要素を待機し、操作性 チェックを待機し、要素をフォーカスし、入力し、入力後に 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() を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、selector を持つ要素を取得し、フォーカスします。selector に一致する要素がない場合、このメソッドは一致する要素が 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() を使用してください。ロケーターの詳細についてはこちらをご覧ください。

このメソッドは、次の手順を実行して、selector に一致する要素にホバーします。

  1. selector に一致する要素を検索します。一致する要素がない場合は、一致する要素が 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 (オプション)Added in: v1.28#

      非推奨

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

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

    • setPosition Position (任意)#

      要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合、要素の可視点を使用します。

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

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

    • setTimeout double (任意)#

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

    • setTrial boolean (任意)追加: v1.11#

      設定すると、このメソッドは 操作性 チェックのみを実行し、アクションをスキップします。デフォルトは false です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードの modifiers は、これらのキーが押されたときにのみ表示される要素をテストできるように、trial に関係なく押されることに注意してください。

戻り値


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() を使用してください。ロケーターの詳細についてはこちらをご覧ください。

要素が無効になっているかどうかを返します。有効の反対です。

使用例

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()を代わりに使用してください。ロケーターの詳細をお読みください。

要素が非表示かどうか、つまりvisibleの反対の状態を返します。要素に一致しないselectorは非表示とみなされます。

使用例

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()を代わりに使用してください。ロケーターの詳細をお読みください。

要素がvisibleかどうかを返します。要素に一致しないselectorは非表示とみなされます。

使用例

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 - F12Digit0- Digit9KeyA- KeyZBackquoteMinusEqualBackslashBackspaceTabDeleteEscapeArrowDownEndEnterHomeInsertPageDownPageUpArrowRightArrowUpなど。

次の修飾子ショートカットもサポートされています: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#

    押すキーの名前または生成する文字(ArrowLeftaなど)。

  • 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()を代わりに使用してください。ロケーターの詳細をお読みください。

このメソッドは、selectorに一致する要素を待ち、actionabilityチェックを待ち、指定されたすべてのオプションが<select>要素に存在することを待ち、これらのオプションを選択します。

ターゲット要素が<select>要素でない場合、このメソッドはエラーをスローします。ただし、要素が、関連付けられたcontrolを持つ<label>要素内にある場合、代わりにcontrolが使用されます。

正常に選択されたオプション値の配列を返します。

提供されたすべてのオプションが選択されると、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属性がある場合、一致するすべてのオプションが選択されます。それ以外の場合は、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。String値は、値とラベルの両方に一致します。オプションは、指定されたすべてのプロパティが一致する場合に一致すると見なされます。

  • 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()を代わりに使用してください。ロケーターの詳細をお読みください。

このメソッドは、次の手順を実行して、selectorに一致する要素をチェックまたはチェック解除します。

  1. selectorに一致する要素を見つけます。存在しない場合は、一致する要素がDOMにアタッチされるまで待ちます。
  2. 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。
  3. 要素がすでに正しいチェック状態になっている場合、このメソッドはすぐに戻ります。
  4. actionabilityチェックが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]属性を持つ入力の場合、単一のディレクトリパスのみがサポートされます。

このメソッドは、selectorinput 要素を指していることを期待します。ただし、要素が、関連付けられたcontrolを持つ<label>要素内にある場合、代わりにcontrolをターゲットにします。

使用例

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()を代わりに使用してください。ロケーターの詳細をお読みください。

このメソッドは、次の手順を実行して、selectorに一致する要素をタップします。

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

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

Page.tap()メソッドは、ブラウザコンテキストのsetHasTouchオプションがfalseの場合、例外をスローします。

使用例

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 です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードの modifiers は、これらのキーが押されたときにのみ表示される要素をテストできるように、trial に関係なく押されることに注意してください。

戻り値


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()を代わりに使用してください。ロケーターの詳細をお読みください。

このメソッドは、次の手順を実行して、selectorに一致する要素をチェック解除します。

  1. selectorに一致する要素を見つけます。存在しない場合は、一致する要素がDOMにアタッチされるまで待ちます。
  2. 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェック解除されている場合、このメソッドはすぐに戻ります。
  3. actionabilityチェックが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()を使用してください。

メインフレームのナビゲーションを待機し、メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。異なるアンカーへのナビゲーション、またはHistory 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();
});

URLを変更するためのHistory APIの使用は、ナビゲーションと見なされます。

引数

  • options Page.WaitForNavigationOptions (省略可能)

    • setTimeout double (省略可能)#

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

    • setUrl String | Pattern | Predicate<String> (省略可能)#

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

    • setWaitUntil enum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT } (省略可能)#

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

      • 'domcontentloaded' - DOMContentLoaded イベントが発火したときに操作が完了したと見なします。
      • 'load' - load イベントが発火したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも 500 ミリ秒ない場合に操作が完了したと見なします。このメソッドをテストに使用しないでください。代わりに、Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスが受信され、ドキュメントのロードが開始されたときに操作が完了したと見なします。
  • callback Runnable追加: v1.9#

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

戻り値


waitForSelector

v1.9 で追加 page.waitForSelector
非推奨

代わりに、可視性をアサートするウェブアサーションか、ロケーターベースの Locator.waitFor() を使用してください。ロケーターの詳細はこちらをご覧ください。

セレクターで指定された要素が setState オプションの条件を満たすと、処理が完了します。hidden または detached を待機している場合は、null を返します。

Playwright はアクションを実行する前に、要素の準備ができるのを自動的に待ちます。Locator オブジェクトとウェブファーストのアサーションを使用することで、コードから wait-for-selector をなくすことができます。

selectorsetState オプション (DOM に現れる/消える、または可視/不可視になる) の条件を満たすまで待機します。メソッド呼び出しの時点で selector がすでに条件を満たしている場合、メソッドはすぐに処理を完了します。セレクターが 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 アクションと自動的に待機するウェブアサーションを使用してください。

指定された timeout (ミリ秒単位) を待機します。

page.waitForTimeout() はデバッグでのみ使用してください。本番環境でタイマーを使用するテストは不安定になりがちです。代わりに、ネットワークイベントやセレクターの可視化などのシグナルを使用してください。

使用例

// wait for 1 second
page.waitForTimeout(1000);

引数

  • timeout double#

    待機するタイムアウト

戻り値