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
メソッド(on
、once
、removeListener
など)を使用して処理できます。
この例では、単一ページの 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 で追加次のいずれかのシナリオで評価されるスクリプトを追加します。
- ページがナビゲートされるたび。
- 子フレームがアタッチまたはナビゲートされるたび。この場合、スクリプトは新しくアタッチされたフレームのコンテキストで評価されます。
スクリプトは、ドキュメントが作成された後、そのスクリプトが実行される前に評価されます。これは、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() を介してインストールされた複数のスクリプトの評価順序は定義されていません。
引数
戻り値
addLocatorHandler
追加: v1.42Web ページをテストする際、「サインアップ」ダイアログのような予期しないオーバーレイが表示され、ボタンをクリックするなど、自動化したいアクションをブロックすることがあります。これらのオーバーレイは、常に同じ方法または同じタイミングで表示されるとは限らず、自動テストで処理するのが難しい場合があります。
このメソッドを使用すると、オーバーレイが表示されていることを検出したときにアクティブになる特別な関数(ハンドラーと呼ばれる)を設定できます。ハンドラーの役割は、オーバーレイを削除し、オーバーレイが存在しなかったかのようにテストを続行できるようにすることです。
留意すべき点
- オーバーレイが予測可能に表示される場合は、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 が表示されたら実行される関数。この関数は、クリックなどのアクションをブロックする要素を取り除く必要があります。
-
options
Page.AddLocatorHandlerOptions
(オプション)
戻り値
addScriptTag
v1.9 で追加目的の URL またはコンテンツを持つ <script>
タグをページに追加します。スクリプトの onload が発生したとき、またはスクリプトコンテンツがフレームに挿入されたときに、追加されたタグを返します。
使用例
Page.addScriptTag();
Page.addScriptTag(options);
引数
options
Page.AddScriptTagOptions
(オプション)
戻り値
addStyleTag
v1.9 で追加目的の URL を持つ <link rel="stylesheet">
タグ、またはコンテンツを持つ <style type="text/css">
タグをページに追加します。スタイルシートの onload が発生したとき、または CSS コンテンツがフレームに挿入されたときに、追加されたタグを返します。
使用例
Page.addStyleTag();
Page.addStyleTag(options);
引数
options
Page.AddStyleTagOptions
(オプション)
戻り値
bringToFront
v1.9 で追加ページを前面に表示します(タブをアクティブにします)。
使用例
Page.bringToFront();
戻り値
close
v1.9 で追加setRunBeforeUnload が false
の場合、unload ハンドラーを実行せず、ページが閉じるのを待ちます。setRunBeforeUnload が true
の場合、メソッドは 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 で追加doctype を含むページの完全な HTML コンテンツを取得します。
使用例
Page.content();
戻り値
context
v1.9 で追加ページが属するブラウザコンテキストを取得します。
使用例
Page.context();
戻り値
dragAndDrop
追加: v1.13このメソッドは、ソース要素をターゲット要素にドラッグします。最初にソース要素に移動し、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));
引数
-
ドラッグする要素を検索するセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
ドロップする要素を検索するセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.DragAndDropOptions
(オプション)-
実行可能性 チェックをバイパスするかどうか。デフォルトは
false
です。 -
setNoWaitAfter
boolean (オプション)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
setSourcePosition
SourcePosition (オプション)追加: v1.14#要素のパディングボックスの左上隅を基準としたこのポイントで、ソース要素をクリックします。指定しない場合、要素の可視点が使用されます。
-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
setTargetPosition
TargetPosition (オプション)追加: v1.14#要素のパディングボックスの左上隅を基準としたこのポイントで、ターゲット要素にドロップします。指定しない場合、要素の可視点が使用されます。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
設定すると、このメソッドは 実行可能性 チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素の準備が整うまで待機する場合に便利です。
-
戻り値
emulateMedia
v1.9 で追加このメソッドは、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 で追加expression 呼び出しの値を返します。
Page.evaluate() に渡された関数が Promise を返す場合、Page.evaluate() は Promise が解決されるのを待って、その値を返します。
Page.evaluate() に渡された関数が Serializable でない値を返す場合、Page.evaluate() は undefined
に解決されます。Playwright は、JSON
でシリアライズできない追加の値(-0
、NaN
、Infinity
、-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();
引数
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (オプション)#expression に渡すオプションの引数。
戻り値
evaluateHandle
v1.9 で追加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();
引数
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (オプション)#expression に渡すオプションの引数。
戻り値
exposeBinding
v1.9 で追加このメソッドは、このページのすべてのフレームの window
オブジェクトに name という名前の関数を追加します。呼び出されると、関数は callback を実行し、callback の戻り値に解決される Promise を返します。callback が Promise を返す場合、それは 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");
}
}
}
引数
-
window オブジェクトの関数の名前。
-
callback
BindingCallback
#Playwright のコンテキストで呼び出されるコールバック関数。
-
options
Page.ExposeBindingOptions
(オプション)
戻り値
exposeFunction
v1.9 で追加このメソッドは、ページのすべてのフレームの window
オブジェクトに name という名前の関数を追加します。呼び出されると、関数は callback を実行し、callback の戻り値に解決される Promise を返します。
callback が Promise を返す場合、それは 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");
}
}
}
引数
戻り値
frame
v1.9 で追加指定された基準に一致するフレームを返します。name
または url
のいずれかを指定する必要があります。
使用例
Frame frame = page.frame("frame-name");
Frame frame = page.frameByUrl(Pattern.compile(".*domain.*"));
引数
戻り値
frameByUrl
追加: v1.9URL が一致するフレームを返します。
使用例
Page.frameByUrl(url);
引数
-
url
String | Pattern | Predicate<String>#フレームの
url
を [URL] オブジェクトとして受け取る、glob パターン、regex パターン、または predicate。
戻り値
frameLocator
Added in: v1.17iframe を操作する際、iframe に入り、その iframe 内の要素を選択できるようにするフレームロケーターを作成できます。
使用例
次のスニペットは、<iframe id="my-frame">
のように、id my-frame
を持つ iframe 内のテキスト "Submit" を持つ要素を特定します。
Locator locator = page.frameLocator("#my-iframe").getByText("Submit");
locator.click();
引数
戻り値
frames
v1.9 で追加ページにアタッチされているすべてのフレームの配列。
使用例
Page.frames();
戻り値
getByAltText
Added in: v1.27alt テキストによって要素を特定できます。
使用例
例えば、このメソッドは alt テキスト "Playwright logo" で画像を検索します。
<img alt='Playwright logo'>
page.getByAltText("Playwright logo").click();
引数
-
要素を特定するためのテキスト。
-
options
Page.GetByAltTextOptions
(optional)
戻り値
getByLabel
Added in: v1.27関連付けられた <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");
引数
-
要素を特定するためのテキスト。
-
options
Page.GetByLabelOptions
(optional)
戻り値
getByPlaceholder
Added in: v1.27プレースホルダーテキストによって入力要素を特定できます。
使用例
例えば、次の DOM 構造を考えます。
<input type="email" placeholder="name@example.com" />
プレースホルダーテキストで特定した後、入力を埋めることができます。
page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");
引数
-
要素を特定するためのテキスト。
-
options
Page.GetByPlaceholderOptions
(optional)
戻り値
getByRole
Added in: v1.27ARIA role、ARIA 属性、および アクセシブルネームによって要素を特定できます。
使用例
次の DOM 構造を考えます。
<h3>Sign up</h3>
<label>
<input type="checkbox" /> Subscribe
</label>
<br/>
<button>Submit</button>
各要素を暗黙的なロールで特定できます。
assertThat(page
.getByRole(AriaRole.HEADING,
new Page.GetByRoleOptions().setName("Sign up")))
.isVisible();
page.getByRole(AriaRole.CHECKBOX,
new Page.GetByRoleOptions().setName("Subscribe"))
.check();
page.getByRole(AriaRole.BUTTON,
new Page.GetByRoleOptions().setName(
Pattern.compile("submit", Pattern.CASE_INSENSITIVE)))
.click();
引数
-
role
enum AriaRole { ALERT, ALERTDIALOG, APPLICATION, ARTICLE, BANNER, BLOCKQUOTE, BUTTON, CAPTION, CELL, CHECKBOX, CODE, COLUMNHEADER, COMBOBOX, COMPLEMENTARY, CONTENTINFO, DEFINITION, DELETION, DIALOG, DIRECTORY, DOCUMENT, EMPHASIS, FEED, FIGURE, FORM, GENERIC, GRID, GRIDCELL, GROUP, HEADING, IMG, INSERTION, LINK, LIST, LISTBOX, LISTITEM, LOG, MAIN, MARQUEE, MATH, METER, MENU, MENUBAR, MENUITEM, MENUITEMCHECKBOX, MENUITEMRADIO, NAVIGATION, NONE, NOTE, OPTION, PARAGRAPH, PRESENTATION, PROGRESSBAR, RADIO, RADIOGROUP, REGION, ROW, ROWGROUP, ROWHEADER, SCROLLBAR, SEARCH, SEARCHBOX, SEPARATOR, SLIDER, SPINBUTTON, STATUS, STRONG, SUBSCRIPT, SUPERSCRIPT, SWITCH, TAB, TABLE, TABLIST, TABPANEL, TERM, TEXTBOX, TIME, TIMER, TOOLBAR, TOOLTIP, TREE, TREEGRID, TREEITEM }
#必須の aria ロール。
-
options
Page.GetByRoleOptions
(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
について詳しくはこちらをご覧ください。 -
通常、ロール
heading
、listitem
、row
、treeitem
に存在する数値属性で、<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テスト 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指定されたテキストを含む要素を特定できます。
アクセシブルロールなどの別の基準で一致させ、テキストコンテンツでフィルタリングできる 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));
引数
-
要素を特定するためのテキスト。
-
options
Page.GetByTextOptions
(optional)
戻り値
詳細
テキストによるマッチングは、完全一致の場合でも常に空白文字を正規化します。例えば、複数のスペースを 1 つにしたり、改行をスペースにしたり、先頭と末尾の空白文字を無視したりします。
button
および submit
タイプの入力要素は、テキストコンテンツの代わりに value
で一致します。例えば、テキスト "Log in"
で特定すると、<input type=button value="Log in">
と一致します。
getByTitle
Added in: v1.27title 属性によって要素を特定できます。
使用例
次の DOM 構造を考えます。
<span title='Issues count'>25 issues</span>
title テキストで特定した後、問題の数をチェックできます。
assertThat(page.getByTitle("Issues count")).hasText("25 issues");
引数
-
要素を特定するためのテキスト。
-
options
Page.GetByTitleOptions
(optional)
戻り値
goBack
v1.9 で追加メインリソースのレスポンスを返します。複数のリダイレクトがある場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。戻ることができない場合は、null
を返します。
履歴内の前のページに移動します。
使用例
Page.goBack();
Page.goBack(options);
引数
options
Page.GoBackOptions
(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 で追加メインリソースのレスポンスを返します。複数のリダイレクトがある場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。進むことができない場合は、null
を返します。
履歴内の次のページに移動します。
使用例
Page.goForward();
Page.goForward(options);
引数
options
Page.GoForwardOptions
(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();
戻り値
locator
追加: v1.14このメソッドは、このページ/フレームでアクションを実行するために使用できる要素ロケーターを返します。ロケーターは、アクションを実行する直前に要素に解決されるため、同じロケーターに対する一連のアクションは、実際には異なる DOM 要素で実行される可能性があります。これは、これらのアクション間の DOM 構造が変更された場合に発生します。
使用例
Page.locator(selector);
Page.locator(selector, options);
引数
-
DOM 要素の解決時に使用するセレクター。
-
options
Page.LocatorOptions
(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();
戻り値
navigate
v1.9 で追加メインリソースのレスポンスを返します。複数のリダイレクトがある場合、ナビゲーションは最初のリダイレクトではないレスポンスで解決されます。
メソッドは、次の場合にエラーをスローします。
- 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。URL にはスキーム(例:
https://
)を含める必要があります。コンテキストオプションを介して setBaseURL が提供され、渡された URL がパスである場合、new URL()
コンストラクターを介してマージされます。 -
options
Page.NavigateOptions
(optional)-
リファラーヘッダー値。指定された場合、Page.setExtraHTTPHeaders() によって設定されたリファラーヘッダー値よりも優先されます。
-
操作の最大時間(ミリ秒単位)。デフォルトは 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.101 回限りの 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);
引数
-
Dialog オブジェクトを受け取ります。ダイアログを Dialog.accept() するか、Dialog.dismiss() する必要があります。そうしないと、ページがダイアログを待機してフリーズし、クリックなどのアクションが完了しなくなります。
opener
v1.9 で追加ポップアップページの opener を返し、それ以外の場合は null
を返します。opener がすでに閉じられている場合は、null
を返します。
使用例
Page.opener();
戻り値
pause
追加: v1.9スクリプトの実行を一時停止します。Playwright はスクリプトの実行を停止し、ユーザーがページオーバーレイの「再開」ボタンを押すか、DevTools コンソールで playwright.resume()
を呼び出すのを待ちます。
ユーザーは、一時停止中にセレクターを検査したり、手動ステップを実行したりできます。再開すると、一時停止した場所から元のスクリプトの実行が継続されます。
このメソッドでは、Playwright がヘッダーモードで、setHeadless オプションが false の状態で開始されている必要があります。
使用例
Page.pause();
戻り値
pdf
v1.9 で追加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")));
setWidth、setHeight、および 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 と同じ形式を使用する必要があります。
-
用紙フォーマット。設定した場合、setWidth または setHeight オプションよりも優先されます。デフォルトは 'Letter' です。
-
setHeaderTemplate
String (optional)#印刷ヘッダーの HTML テンプレート。印刷値を挿入するために使用される次のクラスを持つ有効な HTML マークアップである必要があります。
'date'
フォーマットされた印刷日'title'
ドキュメントタイトル'url'
ドキュメントの場所'pageNumber'
現在のページ番号'totalPages'
ドキュメント内の総ページ数
-
用紙の高さ。単位ラベル付きの値を受け入れます。
-
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
です。 -
印刷する用紙範囲。例:'1-5, 8, 11-13'。デフォルトは空文字列で、すべてのページを印刷することを意味します。
-
PDFを保存するファイルパス。setPathが相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合、PDFはディスクに保存されません。
-
setPreferCSSPageSize
boolean (オプション)#ページで宣言されたCSS
@page
サイズを、setWidth、setHeight、またはsetFormatオプションで宣言されたサイズよりも優先します。デフォルトはfalse
で、コンテンツを用紙サイズに合わせて拡大縮小します。 -
setPrintBackground
boolean (オプション)#背景グラフィックを印刷します。デフォルトは
false
です。 -
ウェブページのレンダリングのスケール。デフォルトは
1
です。スケール量は0.1から2の間である必要があります。 -
setTagged
boolean (オプション)追加: v1.42#タグ付き(アクセシブル)PDFを生成するかどうか。デフォルトは
false
です。 -
用紙の幅。単位付きの値を受け入れます。
-
戻り値
reload
v1.9 で追加このメソッドは、ユーザーがブラウザの更新をトリガーした場合と同じように、現在のページを再読み込みします。メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。
使用例
Page.reload();
Page.reload(options);
引数
options
Page.ReloadOptions
(オプション)-
操作の最大時間(ミリ秒単位)。デフォルトは 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.44Page.addLocatorHandler()によって追加されたすべてのロケーターハンドラーを、特定のロケーターに対して削除します。
使用例
Page.removeLocatorHandler(locator);
引数
-
Page.addLocatorHandler()に渡されるロケーター。
戻り値
requestGC
追加: v1.48ページにガベージコレクションを実行するように要求します。ただし、すべての到達不能なオブジェクトが収集される保証はないことに注意してください。
これは、メモリリークを検出するのに役立ちます。たとえば、ページにリークしている可能性のある大きなオブジェクト'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 で追加ルーティングは、ページによって行われるネットワークリクエストを変更する機能を提供します。
ルーティングが有効になると、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()
コンストラクターを介してマージされます。 -
リクエストをルーティングするハンドラー関数。
-
options
Page.RouteOptions
(オプション)
戻り値
routeFromHAR
追加: v1.23指定した場合、ページで行われるネットワークリクエストはHARファイルから提供されます。HARからのリプレイの詳細をご覧ください。
Playwrightは、Service WorkerによってインターセプトされたリクエストをHARファイルから提供しません。この問題を参照してください。setServiceWorkersを'block'
に設定して、リクエストインターセプトを使用する場合はService Workerを無効にすることをお勧めします。
使用例
Page.routeFromHAR(har);
Page.routeFromHAR(har, options);
引数
-
HARファイルへのパス。事前に記録されたネットワークデータが含まれています。
path
が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。 -
options
Page.RouteFromHAROptions
(オプション)-
setNotFound
enum HarNotFound { ABORT, FALLBACK }
(オプション)#- 'abort'に設定すると、HARファイルに見つからないリクエストはすべて中止されます。
- 'fallback'に設定すると、見つからないリクエストはネットワークに送信されます。
デフォルトはabortです。
-
指定した場合、ファイルから提供する代わりに、実際のネットワーク情報で指定された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このメソッドを使用すると、ページによって作成された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(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クリッピング領域の高さ
結果の画像のクリッピングを指定するオブジェクト。
-
-
trueの場合、現在表示されているビューポートではなく、スクロール可能なページ全体のスクリーンショットを撮ります。デフォルトは
false
です。 -
setMask
List<Locator> (オプション)#スクリーンショットを撮るときにマスクする必要があるロケーターを指定します。マスクされた要素は、ピンク色のボックス
#FF00FF
(setMaskColorでカスタマイズ)でオーバーレイされ、その境界ボックスを完全に覆います。マスクは非表示の要素にも適用されます。表示要素のみを一致させるを参照して、それを無効にしてください。 -
setMaskColor
String (オプション)追加: v1.35#CSSカラー形式で、マスクされた要素のオーバーレイボックスの色を指定します。デフォルトの色はピンク
#FF00FF
です。 -
setOmitBackground
boolean (オプション)#デフォルトの白い背景を非表示にし、透明度のあるスクリーンショットをキャプチャできるようにします。
jpeg
画像には適用されません。デフォルトはfalse
です。 -
画像を保存するファイルパス。スクリーンショットのタイプは、ファイル拡張子から推測されます。setPathが相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合、画像はディスクに保存されません。
-
画像の品質。0〜100の間です。
png
画像には適用されません。 -
setScale
enum ScreenshotScale { CSS, DEVICE }
(オプション)#"css"
に設定すると、スクリーンショットはページのCSSピクセルごとに1ピクセルになります。高DPIデバイスの場合、これによりスクリーンショットが小さくなります。"device"
オプションを使用すると、デバイスピクセルごとに1ピクセルが生成されるため、高DPIデバイスのスクリーンショットは2倍またはそれ以上大きくなります。デフォルトは
"device"
です。 -
setStyle
String (オプション)追加: v1.41#スクリーンショットを作成中に適用するスタイルシートのテキスト。これは、動的な要素を非表示にしたり、要素を非表示にしたり、プロパティを変更したりして、反復可能なスクリーンショットを作成するのに役立つ場所です。このスタイルシートはShadow DOMを貫通し、内部フレームに適用されます。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
setType
enum ScreenshotType { PNG, JPEG }
(オプション)#スクリーンショットのタイプを指定します。デフォルトは
png
です。
-
戻り値
setContent
v1.9 で追加このメソッドは、内部的にdocument.write()を呼び出し、そのすべての特定の特性と動作を継承します。
使用例
Page.setContent(html);
Page.setContent(html, options);
引数
-
ページに割り当てるHTMLマークアップ。
-
options
Page.SetContentOptions
(オプション)-
操作の最大時間(ミリ秒単位)。デフォルトは 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.goBack()
- Page.goForward()
- Page.navigate()
- Page.reload()
- Page.setContent()
- Page.waitForNavigation()
- Page.waitForURL()
使用例
Page.setDefaultNavigationTimeout(timeout);
引数
setDefaultTimeout
v1.9 で追加この設定は、timeoutオプションを受け入れるすべてのメソッドのデフォルトの最大時間を変更します。
使用例
Page.setDefaultTimeout(timeout);
引数
setExtraHTTPHeaders
v1.9 で追加追加のHTTPヘッダーは、ページが開始するすべてのリクエストとともに送信されます。
Page.setExtraHTTPHeaders()は、送信リクエストのヘッダーの順序を保証しません。
使用例
Page.setExtraHTTPHeaders(headers);
引数
戻り値
setViewportSize
v1.9 で追加単一のブラウザに複数のページがある場合、各ページは独自のビューポートサイズを持つことができます。ただし、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");
引数
戻り値
title
v1.9 で追加ページのタイトルを返します。
使用例
Page.title();
戻り値
unroute
v1.9 で追加Page.route()で作成されたルートを削除します。handlerが指定されていない場合、urlのすべてのルートを削除します。
使用例
Page.unroute(url);
Page.unroute(url, handler);
引数
-
url
String | Pattern | Predicate<String>#ルーティング中に一致させるglobパターン、正規表現パターン、または[URL]を受け取る述語。
-
handler
Consumer<Route> (オプション)#リクエストをルーティングするオプションのハンドラー関数。
戻り値
unrouteAll
追加: v1.41Page.route()およびPage.routeFromHAR()で作成されたすべてのルートを削除します。
使用例
Page.unrouteAll();
戻り値
url
v1.9 で追加使用例
Page.url();
戻り値
video
v1.9 で追加このページに関連付けられたVideoオブジェクト。
使用例
Page.video();
戻り値
viewportSize
v1.9 で追加使用例
Page.viewportSize();
戻り値
waitForClose
追加: v1.11アクションを実行し、Pageが閉じるのを待ちます。
使用例
Page.waitForClose(callback);
Page.waitForClose(callback, options);
引数
-
options
Page.WaitForCloseOptions
(オプション)-
setTimeout
double (オプション)追加: v1.9#待機する最大時間(ミリ秒単位)。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには、0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout()を使用して変更できます。
-
-
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForCondition
追加: v1.32このメソッドは、条件が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
(オプション)-
待機する最大時間(ミリ秒単位)。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには、0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout()またはPage.setDefaultTimeout()メソッドを使用して変更できます。
-
戻り値
waitForConsoleMessage
追加: v1.9アクションを実行し、ページでConsoleMessageがログに記録されるのを待ちます。述語が指定されている場合、ConsoleMessage値をpredicate
関数に渡し、predicate(message)
が真の値を返すのを待ちます。Page.onConsoleMessage(handler)イベントが発生する前にページが閉じられると、エラーがスローされます。
使用例
Page.waitForConsoleMessage(callback);
Page.waitForConsoleMessage(callback, options);
引数
-
options
Page.WaitForConsoleMessageOptions
(オプション)-
setPredicate
Predicate<ConsoleMessage> (オプション)#ConsoleMessage オブジェクトを受け取り、待機を解決すべき時に真偽値を返します。
-
待機する最大時間(ミリ秒単位)。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには、0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout()を使用して変更できます。
-
-
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForDownload
追加: v1.9アクションを実行し、新しい Download を待ちます。predicate が提供された場合、Download 値を predicate
関数に渡し、predicate(download)
が真偽値を返すのを待ちます。ダウンロードイベントが発生する前にページが閉じられた場合、エラーをスローします。
使用例
Page.waitForDownload(callback);
Page.waitForDownload(callback, options);
引数
-
options
Page.WaitForDownloadOptions
(オプション) -
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForFileChooser
追加: v1.9アクションを実行し、新しい FileChooser が作成されるのを待ちます。predicate が提供された場合、FileChooser 値を predicate
関数に渡し、predicate(fileChooser)
が真偽値を返すのを待ちます。ファイルチューザーが開かれる前にページが閉じられた場合、エラーをスローします。
使用例
Page.waitForFileChooser(callback);
Page.waitForFileChooser(callback, options);
引数
-
options
Page.WaitForFileChooserOptions
(オプション)-
setPredicate
Predicate<FileChooser> (オプション)#FileChooser オブジェクトを受け取り、待機を解決すべき時に真偽値を返します。
-
待機する最大時間(ミリ秒単位)。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには、0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout()を使用して変更できます。
-
-
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForFunction
v1.9 で追加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);
引数
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (オプション)#expression に渡すオプションの引数。
-
options
Page.WaitForFunctionOptions
(オプション)-
setPollingInterval
double (オプション)#指定した場合、関数が実行される間隔 (ミリ秒単位) として扱われます。オプションが指定されていない場合、デフォルトでは expression は
requestAnimationFrame
コールバックで実行されます。 -
待機する最大時間(ミリ秒単位)。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには、0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout()またはPage.setDefaultTimeout()メソッドを使用して変更できます。
-
戻り値
waitForLoadState
v1.9 で追加必要なロード状態に達すると解決されます。
これは、ページが必要なロード状態 (デフォルトでは 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
(オプション)-
操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには
0
を渡します。デフォルト値は、BrowserContext.setDefaultNavigationTimeout()、BrowserContext.setDefaultTimeout()、Page.setDefaultNavigationTimeout()、または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
waitForPopup
追加: v1.9アクションを実行し、ポップアップ Page を待ちます。predicate が提供された場合、[Popup] 値を predicate
関数に渡し、predicate(page)
が真偽値を返すのを待ちます。ポップアップイベントが発生する前にページが閉じられた場合、エラーをスローします。
使用例
Page.waitForPopup(callback);
Page.waitForPopup(callback, options);
引数
-
options
Page.WaitForPopupOptions
(オプション) -
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForRequest
v1.9 で追加一致するリクエストを待機して返します。イベントの詳細については、イベントの待機 を参照してください。
使用例
// 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
(オプション)-
最大待機時間 (ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには
0
を渡します。デフォルト値は、Page.setDefaultTimeout() メソッドを使用して変更できます。
-
-
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForRequestFinished
追加: v1.12アクションを実行し、Request がロードを完了するのを待ちます。predicate が提供された場合、Request 値を predicate
関数に渡し、predicate(request)
が真偽値を返すのを待ちます。Page.onRequestFinished(handler) イベントが発生する前にページが閉じられた場合、エラーをスローします。
使用例
Page.waitForRequestFinished(callback);
Page.waitForRequestFinished(callback, options);
引数
-
options
Page.WaitForRequestFinishedOptions
(オプション) -
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForResponse
v1.9 で追加一致したレスポンスを返します。イベントの詳細については、イベントの待機 を参照してください。
使用例
// 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
(オプション)-
最大待機時間 (ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには
0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
-
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForURL
追加: v1.11メインフレームが指定された 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
(オプション)-
操作の最大時間(ミリ秒単位)。デフォルトは 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アクションを実行し、新しい WebSocket を待ちます。predicate が提供された場合、WebSocket 値を predicate
関数に渡し、predicate(webSocket)
が真偽値を返すのを待ちます。WebSocket イベントが発生する前にページが閉じられた場合、エラーをスローします。
使用例
Page.waitForWebSocket(callback);
Page.waitForWebSocket(callback, options);
引数
-
options
Page.WaitForWebSocketOptions
(オプション) -
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForWorker
追加: v1.9アクションを実行し、新しい Worker を待ちます。predicate が提供された場合、Worker 値を predicate
関数に渡し、predicate(worker)
が真偽値を返すのを待ちます。worker イベントが発生する前にページが閉じられた場合、エラーをスローします。
使用例
Page.waitForWorker(callback);
Page.waitForWorker(callback, options);
引数
-
options
Page.WaitForWorkerOptions
(オプション) -
イベントをトリガーするアクションを実行するコールバック。
戻り値
workers
v1.9 で追加このメソッドは、ページに関連付けられたすべての専用 WebWorker を返します。
これは ServiceWorker を含みません。
使用例
Page.workers();
戻り値
プロパティ
clock()
追加: v1.45Playwright には、クロックと時間の経過をモックする機能があります。
使用例
Page.clock()
戻り値
keyboard()
v1.9 で追加使用例
Page.keyboard()
戻り値
mouse()
v1.9 で追加使用例
Page.mouse()
戻り値
request()
追加: v1.16このページに関連付けられた API テストヘルパー。このメソッドは、ページのコンテキストで BrowserContext.request() と同じインスタンスを返します。詳細については、BrowserContext.request() を参照してください。
使用例
Page.request()
戻り値
touchscreen()
v1.9 で追加使用例
Page.touchscreen()
戻り値
イベント
onClose(handler)
v1.9 で追加ページが閉じるときに発行されます。
使用例
Page.onClose(handler)
イベントデータ
onConsoleMessage(handler)
v1.9 で追加ページ内の JavaScript が console.log
や console.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 で追加ページがクラッシュしたときに発行されます。ブラウザページは、メモリを過剰に割り当てようとするとクラッシュする可能性があります。ページがクラッシュすると、進行中および後続の操作は例外をスローします。
クラッシュに対処する最も一般的な方法は、例外をキャッチすることです
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 で追加alert
、prompt
、confirm
、beforeunload
などの JavaScript ダイアログが表示されたときに発行されます。リスナーは、Dialog.accept() または Dialog.dismiss() のいずれかでダイアログを **承認** または **却下** する必要があります。そうしないと、ページはダイアログを待機して フリーズ し、クリックなどのアクションは決して完了しません。
使用例
page.onDialog(dialog -> {
dialog.accept();
});
Page.onDialog(handler) または BrowserContext.onDialog(handler) リスナーが存在しない場合、すべてのダイアログは自動的に却下されます。
イベントデータ
onDOMContentLoaded(handler)
追加: v1.9JavaScript DOMContentLoaded
イベントがディスパッチされたときに発行されます。
使用例
Page.onDOMContentLoaded(handler)
イベントデータ
onDownload(handler)
v1.9 で追加添付ファイルのダウンロードが開始されたときに発行されます。ユーザーは、渡された Download インスタンスを介して、ダウンロードされたコンテンツに対する基本的なファイル操作にアクセスできます。
使用例
Page.onDownload(handler)
イベントデータ
onFileChooser(handler)
追加: v1.9<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)
イベントデータ
onFrameDetached(handler)
追加: v1.9フレームがデタッチされたときに発行されます。
使用例
Page.onFrameDetached(handler)
イベントデータ
onFrameNavigated(handler)
追加: v1.9フレームが新しい URL にナビゲートされたときに発行されます。
使用例
Page.onFrameNavigated(handler)
イベントデータ
onLoad(handler)
v1.9 で追加JavaScript load
イベントがディスパッチされたときに発行されます。
使用例
Page.onLoad(handler)
イベントデータ
onPageError(handler)
追加: v1.9ページ内でキャッチされない例外が発生した場合に発行されます。
// 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 で追加ページが新しいタブまたはウィンドウを開いたときに発行されます。このイベントは 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 で追加ページがリクエストを発行したときに発行されます。request オブジェクトは読み取り専用です。リクエストをインターセプトして変更するには、Page.route() または BrowserContext.route() を参照してください。
使用例
Page.onRequest(handler)
イベントデータ
onRequestFailed(handler)
追加: v1.9リクエストがタイムアウトするなど、リクエストが失敗した場合に発行されます。
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レスポンスボディのダウンロード後にリクエストが正常に完了した場合に発行されます。成功したレスポンスの場合、イベントのシーケンスは request
、response
、および requestfinished
です。
使用例
Page.onRequestFinished(handler)
イベントデータ
onResponse(handler)
v1.9 で追加リクエストに対する response ステータスとヘッダーを受信したときに発行されます。成功したレスポンスの場合、イベントのシーケンスは request
、response
、および requestfinished
です。
使用例
Page.onResponse(handler)
イベントデータ
onWebSocket(handler)
追加: v1.9WebSocket リクエストが送信されたときに発行されます。
使用例
Page.onWebSocket(handler)
イベントデータ
onWorker(handler)
v1.9 で追加専用 WebWorker がページによって生成されたときに発行されます。
使用例
Page.onWorker(handler)
イベントデータ
非推奨
check
v1.9 で追加ロケーターベースの Locator.check() を代わりに使用してください。ロケーター について詳しくはこちらをお読みください。
このメソッドは、次の手順を実行して selector に一致する要素をチェックします。
- selector に一致する要素を見つけます。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
- 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされている場合、このメソッドはすぐに返ります。
- actionability チェックが setForce オプションが設定されていない限り、一致した要素に対して行われるのを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.mouse() を使用して、要素の中央をクリックします。
- 要素がチェックされたことを確認します。そうでない場合、このメソッドは例外をスローします。
指定された setTimeout 中にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。ゼロタイムアウトを渡すと、これが無効になります。
使用例
Page.check(selector);
Page.check(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.CheckOptions
(任意)-
実行可能性 チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
setPosition
Position (任意)追加: v1.11#要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合、要素の可視点を使用します。
-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
setTrial
boolean (任意)追加: v1.11#設定すると、このメソッドは 実行可能性 チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素の準備が整うまで待機する場合に便利です。
-
戻り値
click
v1.9 で追加代わりにロケーターベースの Locator.click() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
このメソッドは、次の手順を実行して、selector に一致する要素をクリックします。
- selector に一致する要素を検索します。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
- setForce オプションが設定されていない限り、一致する要素の 操作性 チェックを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.mouse() を使用して、要素の中心または指定された setPosition をクリックします。
- setNoWaitAfter オプションが設定されていない限り、開始されたナビゲーションが成功または失敗するのを待ちます。
指定された setTimeout の間にすべてのステップが完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトにゼロを渡すと、これは無効になります。
使用例
Page.click(selector);
Page.click(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.ClickOptions
(任意)-
setButton
enum MouseButton { LEFT, RIGHT, MIDDLE }
(任意)#デフォルトは
left
です。 -
デフォルトは 1 です。UIEvent.detail を参照してください。
-
mousedown
とmouseup
の間の待ち時間(ミリ秒単位)。デフォルトは 0 です。 -
実行可能性 チェックをバイパスするかどうか。デフォルトは
false
です。 -
setModifiers
List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }
> (任意)#押す修飾キー。操作中にこれらの修飾キーのみが押されるようにし、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta" は、Windows および Linux では "Control" に、macOS では "Meta" に解決されます。
-
非推奨
このオプションは将来的に
true
がデフォルトになります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページのロードが開始されるのを待機しています。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページに移動するなどの例外的な場合にのみ必要になります。デフォルトは
false
です。 -
setPosition
Position (任意)#要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合、要素の可視点を使用します。
-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
setTrial
boolean (任意)追加: v1.11#設定すると、このメソッドは 操作性 チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードのmodifiers
は、これらのキーが押されたときにのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
-
戻り値
dblclick
v1.9 で追加代わりにロケーターベースの Locator.dblclick() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
このメソッドは、次の手順を実行して、selector に一致する要素をダブルクリックします。
- selector に一致する要素を検索します。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
- setForce オプションが設定されていない限り、一致する要素の 操作性 チェックを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.mouse() を使用して、要素の中心または指定された setPosition をダブルクリックします。
指定された setTimeout の間にすべてのステップが完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトにゼロを渡すと、これは無効になります。
page.dblclick()
は、2 つの click
イベントと 1 つの dblclick
イベントをディスパッチします。
使用例
Page.dblclick(selector);
Page.dblclick(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.DblclickOptions
(任意)-
setButton
enum MouseButton { LEFT, RIGHT, MIDDLE }
(任意)#デフォルトは
left
です。 -
mousedown
とmouseup
の間の待ち時間(ミリ秒単位)。デフォルトは 0 です。 -
実行可能性 チェックをバイパスするかどうか。デフォルトは
false
です。 -
setModifiers
List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }
> (任意)#押す修飾キー。操作中にこれらの修飾キーのみが押されるようにし、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta" は、Windows および Linux では "Control" に、macOS では "Meta" に解決されます。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
setPosition
Position (任意)#要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合、要素の可視点を使用します。
-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
setTrial
boolean (任意)追加: v1.11#設定すると、このメソッドは 操作性 チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードのmodifiers
は、これらのキーが押されたときにのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
-
戻り値
dispatchEvent
v1.9 で追加代わりにロケーターベースの Locator.dispatchEvent() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
以下のスニペットは、要素に click
イベントをディスパッチします。要素の可視状態に関係なく、click
がディスパッチされます。これは element.click() を呼び出すことと同等です。
使用例
page.dispatchEvent("button#submit", "click");
内部的には、与えられた type に基づいてイベントのインスタンスを作成し、eventInit プロパティで初期化し、要素にディスパッチします。イベントはデフォルトで composed
、cancelable
、およびバブルです。
eventInit はイベント固有であるため、初期プロパティのリストについてはイベントのドキュメントを参照してください
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
ライブオブジェクトをイベントに渡したい場合は、プロパティ値として 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);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
DOM イベントタイプ:
"click"
、"dragstart"
など。 -
eventInit
EvaluationArgument (任意)#オプションのイベント固有の初期化プロパティ。
-
options
Page.DispatchEventOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
evalOnSelector
追加: v1.9このメソッドは、要素が操作性チェックに合格するのを待機しないため、不安定なテストにつながる可能性があります。代わりに、Locator.evaluate()、他の Locator ヘルパーメソッド、または web-first アサーションを使用してください。
このメソッドは、ページ内で指定されたセレクターに一致する要素を検索し、最初の引数として expression に渡します。セレクターに一致する要素がない場合、このメソッドはエラーをスローします。expression の値を返します。
expression が Promise を返す場合、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");
引数
-
クエリするセレクター。
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (任意)#expression に渡すオプションの引数。
-
options
Page.EvalOnSelectorOptions
(任意)
戻り値
evalOnSelectorAll
追加: v1.9ほとんどの場合、Locator.evaluateAll()、他の Locator ヘルパーメソッド、および web-first アサーションの方が優れています。
このメソッドは、ページ内で指定されたセレクターに一致するすべての要素を検索し、一致する要素の配列を最初の引数として expression に渡します。expression 呼び出しの結果を返します。
expression が Promise を返す場合、Page.evalOnSelectorAll() はプロミスが解決されるのを待ってその値を返します。
使用例
boolean divCounts = (boolean) page.evalOnSelectorAll("div", "(divs, min) => divs.length >= min", 10);
引数
-
クエリするセレクター。
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (任意)#expression に渡すオプションの引数。
戻り値
fill
v1.9 で追加代わりにロケーターベースの Locator.fill() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
このメソッドは、selector に一致する要素を待機し、操作性 チェックを待機し、要素をフォーカスし、入力し、入力後に input
イベントをトリガーします。入力フィールドをクリアするために、空の文字列を渡すことができることに注意してください。
ターゲット要素が <input>
、<textarea>
、または [contenteditable]
要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連付けられた control を持つ <label>
要素内にある場合、代わりにコントロールが入力されます。
きめ細かいキーボードイベントを送信するには、Locator.pressSequentially() を使用してください。
使用例
Page.fill(selector, value);
Page.fill(selector, value, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
<input>
、<textarea>
、または[contenteditable]
要素に入力する値。 -
options
Page.FillOptions
(任意)-
setForce
boolean (任意)追加: v1.13#実行可能性 チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
focus
v1.9 で追加代わりにロケーターベースの Locator.focus() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
このメソッドは、selector を持つ要素を取得し、フォーカスします。selector に一致する要素がない場合、このメソッドは一致する要素が DOM に現れるまで待機します。
使用例
Page.focus(selector);
Page.focus(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.FocusOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
getAttribute
v1.9 で追加代わりにロケーターベースの Locator.getAttribute() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
要素の属性値を返します。
使用例
Page.getAttribute(selector, name);
Page.getAttribute(selector, name, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
値を取得する属性名。
-
options
Page.GetAttributeOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
hover
v1.9 で追加代わりにロケーターベースの Locator.hover() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
このメソッドは、次の手順を実行して、selector に一致する要素にホバーします。
- selector に一致する要素を検索します。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
- setForce オプションが設定されていない限り、一致する要素の 操作性 チェックを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.mouse() を使用して、要素の中心または指定された setPosition にホバーします。
指定された setTimeout の間にすべてのステップが完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトにゼロを渡すと、これは無効になります。
使用例
Page.hover(selector);
Page.hover(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.HoverOptions
(任意)-
実行可能性 チェックをバイパスするかどうか。デフォルトは
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 の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
setTrial
boolean (任意)追加: v1.11#設定すると、このメソッドは 操作性 チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードのmodifiers
は、これらのキーが押されたときにのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
-
戻り値
innerHTML
v1.9 で追加代わりにロケーターベースの Locator.innerHTML() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
element.innerHTML
を返します。
使用例
Page.innerHTML(selector);
Page.innerHTML(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.InnerHTMLOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
innerText
v1.9 で追加代わりにロケーターベースの Locator.innerText() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
element.innerText
を返します。
使用例
Page.innerText(selector);
Page.innerText(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.InnerTextOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
inputValue
追加: v1.13代わりにロケーターベースの Locator.inputValue() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
選択された <input>
、<textarea>
、または <select>
要素の input.value
を返します。
入力要素以外の場合は例外をスローします。ただし、要素が関連付けられた control を持つ <label>
要素内にある場合、コントロールの値を返します。
使用例
Page.inputValue(selector);
Page.inputValue(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.InputValueOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
isChecked
v1.9 で追加代わりにロケーターベースの Locator.isChecked() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
要素がチェックされているかどうかを返します。要素がチェックボックスまたはラジオ入力でない場合は例外をスローします。
使用例
Page.isChecked(selector);
Page.isChecked(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.IsCheckedOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
isDisabled
v1.9 で追加代わりにロケーターベースの Locator.isDisabled() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
要素が無効になっているかどうかを返します。有効の反対です。
使用例
Page.isDisabled(selector);
Page.isDisabled(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.IsDisabledOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
isEditable
v1.9 で追加代わりにロケーターベースの Locator.isEditable() を使用してください。ロケーターの詳細についてはこちらをご覧ください。
要素が 編集可能 かどうかを返します。
使用例
Page.isEditable(selector);
Page.isEditable(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.IsEditableOptions
(任意)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
isEnabled
v1.9 で追加ロケーターベースのLocator.isEnabled()を代わりに使用してください。ロケーターの詳細をお読みください。
要素が有効かどうかを返します。
使用例
Page.isEnabled(selector);
Page.isEnabled(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.IsEnabledOptions
(省略可能)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
isHidden
v1.9 で追加ロケーターベースのLocator.isHidden()を代わりに使用してください。ロケーターの詳細をお読みください。
要素が非表示かどうか、つまりvisibleの反対の状態を返します。要素に一致しないselectorは非表示とみなされます。
使用例
Page.isHidden(selector);
Page.isHidden(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.IsHiddenOptions
(省略可能)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
非推奨
このオプションは無視されます。Page.isHidden()は要素が非表示になるのを待たずに、すぐに戻ります。
-
戻り値
isVisible
v1.9 で追加ロケーターベースのLocator.isVisible()を代わりに使用してください。ロケーターの詳細をお読みください。
要素がvisibleかどうかを返します。要素に一致しないselectorは非表示とみなされます。
使用例
Page.isVisible(selector);
Page.isVisible(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.IsVisibleOptions
(省略可能)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
非推奨
このオプションは無視されます。Page.isVisible()は要素が表示されるのを待たずに、すぐに戻ります。
-
戻り値
press
v1.9 で追加ロケーターベースのLocator.press()を代わりに使用してください。ロケーターの詳細をお読みください。
要素にフォーカスし、Keyboard.down()とKeyboard.up()を使用します。
keyは、意図されたkeyboardEvent.keyの値、またはテキストを生成するための単一の文字を指定できます。keyの値のスーパーセットはこちらにあります。キーの例は次のとおりです。
F1
- F12
、Digit0
- Digit9
、KeyA
- KeyZ
、Backquote
、Minus
、Equal
、Backslash
、Backspace
、Tab
、Delete
、Escape
、ArrowDown
、End
、Enter
、Home
、Insert
、PageDown
、PageUp
、ArrowRight
、ArrowUp
など。
次の修飾子ショートカットもサポートされています:Shift
、Control
、Alt
、Meta
、ShiftLeft
、ControlOrMeta
。ControlOrMeta
は、WindowsおよびLinuxではControl
、macOSではMeta
に解決されます。
Shift
キーを押しながらkeyに対応するテキストを大文字で入力します。
keyが単一の文字の場合、大文字と小文字が区別されるため、値a
とA
はそれぞれ異なるテキストを生成します。
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" )));
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
押すキーの名前または生成する文字(
ArrowLeft
やa
など)。 -
options
Page.PressOptions
(省略可能)-
keydown
とkeyup
の間で待機する時間(ミリ秒単位)。デフォルトは0です。 -
setNoWaitAfter
boolean (省略可能)#非推奨このオプションは将来的に
true
がデフォルトになります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページのロードが開始されるのを待機しています。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページに移動するなどの例外的な場合にのみ必要になります。デフォルトは
false
です。 -
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
querySelector
追加: v1.9ロケーターベースのPage.locator()を代わりに使用してください。ロケーターの詳細をお読みください。
このメソッドは、ページ内で指定されたセレクターに一致する要素を見つけます。セレクターに一致する要素がない場合、戻り値はnull
に解決されます。ページ上の要素を待つには、Locator.waitFor()を使用してください。
使用例
Page.querySelector(selector);
Page.querySelector(selector, options);
引数
-
クエリするセレクター。
-
options
Page.QuerySelectorOptions
(省略可能)
戻り値
querySelectorAll
追加: v1.9ロケーターベースのPage.locator()を代わりに使用してください。ロケーターの詳細をお読みください。
このメソッドは、ページ内で指定されたセレクターに一致するすべての要素を見つけます。セレクターに一致する要素がない場合、戻り値は[]
に解決されます。
使用例
Page.querySelectorAll(selector);
引数
戻り値
selectOption
v1.9 で追加ロケーターベースの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"});
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
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 の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
setChecked
追加: v1.15ロケーターベースのLocator.setChecked()を代わりに使用してください。ロケーターの詳細をお読みください。
このメソッドは、次の手順を実行して、selectorに一致する要素をチェックまたはチェック解除します。
- selectorに一致する要素を見つけます。存在しない場合は、一致する要素がDOMにアタッチされるまで待ちます。
- 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。
- 要素がすでに正しいチェック状態になっている場合、このメソッドはすぐに戻ります。
- actionabilityチェックがsetForceオプションが設定されていない限り、一致した要素に対して行われるのを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.mouse() を使用して、要素の中央をクリックします。
- 要素がチェックまたはチェック解除されたことを確認します。そうでない場合、このメソッドは例外をスローします。
指定されたsetTimeout中にすべての手順が完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトをゼロにすると、これは無効になります。
使用例
Page.setChecked(selector, checked);
Page.setChecked(selector, checked, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
チェックボックスをチェックするかチェック解除するか。
-
options
Page.SetCheckedOptions
(省略可能)-
実行可能性 チェックをバイパスするかどうか。デフォルトは
false
です。 -
setNoWaitAfter
boolean (省略可能)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
setPosition
Position (省略可能)#要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合、要素の可視点を使用します。
-
true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
設定すると、このメソッドは 実行可能性 チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素の準備が整うまで待機する場合に便利です。
-
戻り値
setInputFiles
v1.9 で追加ロケーターベースのLocator.setInputFiles()を代わりに使用してください。ロケーターの詳細をお読みください。
ファイル入力の値を、これらのファイルパスまたはファイルに設定します。filePaths
の一部が相対パスの場合、それらは現在の作業ディレクトリからの相対パスとして解決されます。空の配列の場合、選択されたファイルをクリアします。[webkitdirectory]
属性を持つ入力の場合、単一のディレクトリパスのみがサポートされます。
このメソッドは、selectorがinput 要素を指していることを期待します。ただし、要素が、関連付けられたcontrolを持つ<label>
要素内にある場合、代わりにcontrolをターゲットにします。
使用例
Page.setInputFiles(selector, files);
Page.setInputFiles(selector, files, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.SetInputFilesOptions
(省略可能)-
setNoWaitAfter
boolean (省略可能)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
tap
v1.9 で追加ロケーターベースのLocator.tap()を代わりに使用してください。ロケーターの詳細をお読みください。
このメソッドは、次の手順を実行して、selectorに一致する要素をタップします。
- selectorに一致する要素を見つけます。存在しない場合は、一致する要素がDOMにアタッチされるまで待ちます。
- actionabilityチェックがsetForceオプションが設定されていない限り、一致した要素に対して行われるのを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.touchscreen()を使用して、要素の中心、または指定されたsetPositionをタップします。
指定されたsetTimeout中にすべての手順が完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトをゼロにすると、これは無効になります。
Page.tap()メソッドは、ブラウザコンテキストのsetHasTouchオプションがfalseの場合、例外をスローします。
使用例
Page.tap(selector);
Page.tap(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.TapOptions
(省略可能)-
実行可能性 チェックをバイパスするかどうか。デフォルトは
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 の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
setTrial
boolean (任意)追加: v1.11#設定すると、このメソッドは 操作性 チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードのmodifiers
は、これらのキーが押されたときにのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
-
戻り値
textContent
v1.9 で追加ロケーターベースのLocator.textContent()を代わりに使用してください。ロケーターの詳細をお読みください。
element.textContent
を返します。
使用例
Page.textContent(selector);
Page.textContent(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.TextContentOptions
(省略可能)-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
type
v1.9 で追加ほとんどの場合、代わりにLocator.fill()を使用する必要があります。ページに特別なキーボード処理がある場合にのみ、キーを1つずつ押す必要があります。この場合は、Locator.pressSequentially()を使用してください。
テキスト内の各文字に対して、keydown
、keypress
/input
、およびkeyup
イベントを送信します。page.type
は、きめ細かいキーボードイベントを送信するために使用できます。フォームフィールドに値を入力するには、Page.fill()を使用してください。
Control
やArrowDown
などの特殊キーを押すには、Keyboard.press()を使用してください。
使用例
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
フォーカスされた要素に入力するテキスト。
-
options
Page.TypeOptions
(省略可能)-
キー押下の間隔時間(ミリ秒単位)。デフォルトは0です。
-
setNoWaitAfter
boolean (省略可能)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
uncheck
v1.9 で追加ロケーターベースのLocator.uncheck()を代わりに使用してください。ロケーターの詳細をお読みください。
このメソッドは、次の手順を実行して、selectorに一致する要素をチェック解除します。
- selectorに一致する要素を見つけます。存在しない場合は、一致する要素がDOMにアタッチされるまで待ちます。
- 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェック解除されている場合、このメソッドはすぐに戻ります。
- actionabilityチェックがsetForceオプションが設定されていない限り、一致した要素に対して行われるのを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.mouse() を使用して、要素の中央をクリックします。
- 要素がチェック解除されたことを確認します。そうでない場合、このメソッドは例外をスローします。
指定されたsetTimeout中にすべての手順が完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトをゼロにすると、これは無効になります。
使用例
Page.uncheck(selector);
Page.uncheck(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
Page.UncheckOptions
(省略可能)-
実行可能性 チェックをバイパスするかどうか。デフォルトは
false
です。 -
setNoWaitAfter
boolean (省略可能)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
setPosition
Position (任意)追加: v1.11#要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合、要素の可視点を使用します。
-
setStrict
boolean (オプション)追加: v1.14#true の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。 -
setTrial
boolean (任意)追加: v1.11#設定すると、このメソッドは 実行可能性 チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素の準備が整うまで待機する場合に便利です。
-
戻り値
waitForNavigation
v1.9 で追加このメソッドは本質的に競合状態が発生しやすいため、代わりに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
(省略可能)-
操作の最大時間(ミリ秒単位)。デフォルトは 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'
- ネットワークレスポンスが受信され、ドキュメントのロードが開始されたときに操作が完了したと見なします。
-
-
イベントをトリガーするアクションを実行するコールバック。
戻り値
waitForSelector
v1.9 で追加代わりに、可視性をアサートするウェブアサーションか、ロケーターベースの Locator.waitFor() を使用してください。ロケーターの詳細はこちらをご覧ください。
セレクターで指定された要素が setState オプションの条件を満たすと、処理が完了します。hidden
または detached
を待機している場合は、null
を返します。
Playwright はアクションを実行する前に、要素の準備ができるのを自動的に待ちます。Locator オブジェクトとウェブファーストのアサーションを使用することで、コードから wait-for-selector をなくすことができます。
selector が setState オプション (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();
}
}
}
引数
-
クエリするセレクター。
-
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 の場合、この呼び出しには、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.setDefaultTimeout() または Page.setDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
waitForTimeout
v1.9 で追加本番環境でタイムアウトを待機しないでください。時間を待機するテストは本質的に不安定です。Locator アクションと自動的に待機するウェブアサーションを使用してください。
指定された timeout (ミリ秒単位) を待機します。
page.waitForTimeout()
はデバッグでのみ使用してください。本番環境でタイマーを使用するテストは不安定になりがちです。代わりに、ネットワークイベントやセレクターの可視化などのシグナルを使用してください。
使用例
// wait for 1 second
page.waitForTimeout(1000);
引数
戻り値