Frame
ページは常に、page.main_frame メソッドと frame.child_frames メソッドを介して現在のフレームツリーを公開します。
Frameオブジェクトのライフサイクルは、ページオブジェクトでディスパッチされる次の3つのイベントによって制御されます。
- page.on("frameattached") - フレームがページにアタッチされると発生します。フレームは一度だけページにアタッチできます。
- page.on("framenavigated") - フレームが別のURLへのナビゲーションをコミットすると発生します。
- page.on("framedetached") - フレームがページからデタッチされると発生します。フレームは一度だけページからデタッチできます。
フレームツリーのダンプ例
- Sync
- Async
from playwright.sync_api import sync_playwright, Playwright
def run(playwright: Playwright):
firefox = playwright.firefox
browser = firefox.launch()
page = browser.new_page()
page.goto("https://www.theverge.com")
dump_frame_tree(page.main_frame, "")
browser.close()
def dump_frame_tree(frame, indent):
print(indent + frame.name + '@' + frame.url)
for child in frame.child_frames:
dump_frame_tree(child, indent + " ")
with sync_playwright() as playwright:
run(playwright)
import asyncio
from playwright.async_api import async_playwright, Playwright
async def run(playwright: Playwright):
firefox = playwright.firefox
browser = await firefox.launch()
page = await browser.new_page()
await page.goto("https://www.theverge.com")
dump_frame_tree(page.main_frame, "")
await browser.close()
def dump_frame_tree(frame, indent):
print(indent + frame.name + '@' + frame.url)
for child in frame.child_frames:
dump_frame_tree(child, indent + " ")
async def main():
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
メソッド
add_script_tag
v1.9より前に追加スクリプトのonloadが発生したとき、またはスクリプトの内容がフレームに挿入されたときに、追加されたタグを返します。
目的のURLまたはコンテンツを持つ<script>
タグをページに追加します。
使用法
frame.add_script_tag()
frame.add_script_tag(**kwargs)
引数
-
フレームに挿入される生のJavaScriptコンテンツ。
-
path
Union[str, pathlib.Path] (オプション)#フレームに挿入されるJavaScriptファイルへのパス。
path
が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。 -
スクリプトのタイプ。 JavaScript ES6モジュールをロードするには、「module」を使用します。詳細については、scriptを参照してください。
-
追加されるスクリプトのURL。
戻り値
add_style_tag
v1.9より前に追加スタイルシートのonloadが発生したとき、またはCSSコンテンツがフレームに挿入されたときに、追加されたタグを返します。
目的のURLを持つ<link rel="stylesheet">
タグ、またはコンテンツを持つ<style type="text/css">
タグをページに追加します。
使用法
frame.add_style_tag()
frame.add_style_tag(**kwargs)
引数
-
フレームに挿入される生のCSSコンテンツ。
-
path
Union[str, pathlib.Path] (オプション)#フレームに挿入されるCSSファイルへのパス。
path
が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。 -
<link>
タグのURL。
戻り値
content
v1.9より前に追加DOCTYPEを含むフレームの完全なHTMLコンテンツを取得します。
使用法
frame.content()
戻り値
drag_and_drop
追加: v1.13使用法
frame.drag_and_drop(source, target)
frame.drag_and_drop(source, target, **kwargs)
引数
-
ドラッグする要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
ドロップ先の要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
source_position
Dict (オプション)追加: v1.14#要素のパディングボックスの左上隅を基準としたこのポイントで、ソース要素をクリックします。指定しない場合、要素の表示可能なポイントが使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
target_position
Dict (オプション)追加: v1.14#要素のパディングボックスの左上隅を基準としたこのポイントで、ターゲット要素にドロップします。指定しない場合、要素の表示可能なポイントが使用されます。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
設定すると、このメソッドは操作性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。
戻り値
evaluate
v1.9より前に追加expressionの戻り値を返します。
frame.evaluate()に渡された関数がPromiseを返す場合、frame.evaluate()はPromiseが解決されるのを待機し、その値を返します。
frame.evaluate()に渡された関数が、シリアライズ可能でない値を返す場合、frame.evaluate()はundefined
を返します。Playwrightは、JSON
でシリアライズできないいくつかの追加の値を転送することもサポートしています: -0
, NaN
, Infinity
, -Infinity
。
使用法
- Sync
- Async
result = frame.evaluate("([x, y]) => Promise.resolve(x * y)", [7, 8])
print(result) # prints "56"
result = await frame.evaluate("([x, y]) => Promise.resolve(x * y)", [7, 8])
print(result) # prints "56"
関数の代わりに文字列を渡すこともできます。
- Sync
- Async
print(frame.evaluate("1 + 2")) # prints "3"
x = 10
print(frame.evaluate(f"1 + {x}")) # prints "11"
print(await frame.evaluate("1 + 2")) # prints "3"
x = 10
print(await frame.evaluate(f"1 + {x}")) # prints "11"
ElementHandleインスタンスは、frame.evaluate()への引数として渡すことができます
- Sync
- Async
body_handle = frame.evaluate("document.body")
html = frame.evaluate("([body, suffix]) => body.innerHTML + suffix", [body_handle, "hello"])
body_handle.dispose()
body_handle = await frame.evaluate("document.body")
html = await frame.evaluate("([body, suffix]) => body.innerHTML + suffix", [body_handle, "hello"])
await body_handle.dispose()
引数
-
ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (オプション)#expressionに渡すオプションの引数。
戻り値
evaluate_handle
v1.9より前に追加expressionの戻り値をJSHandleとして返します。
frame.evaluate()とframe.evaluate_handle()の唯一の違いは、frame.evaluate_handle()がJSHandleを返すことです。
frame.evaluate_handle()に渡された関数がPromiseを返す場合、frame.evaluate_handle()はPromiseが解決されるのを待機し、その値を返します。
使用法
- Sync
- Async
a_window_handle = frame.evaluate_handle("Promise.resolve(window)")
a_window_handle # handle for the window object.
a_window_handle = await frame.evaluate_handle("Promise.resolve(window)")
a_window_handle # handle for the window object.
関数の代わりに文字列を渡すこともできます。
- Sync
- Async
a_handle = page.evaluate_handle("document") # handle for the "document"
a_handle = await page.evaluate_handle("document") # handle for the "document"
JSHandleインスタンスは、frame.evaluate_handle()への引数として渡すことができます
- Sync
- Async
a_handle = page.evaluate_handle("document.body")
result_handle = page.evaluate_handle("body => body.innerHTML", a_handle)
print(result_handle.json_value())
result_handle.dispose()
a_handle = await page.evaluate_handle("document.body")
result_handle = await page.evaluate_handle("body => body.innerHTML", a_handle)
print(await result_handle.json_value())
await result_handle.dispose()
引数
-
ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (オプション)#expressionに渡すオプションの引数。
戻り値
frame_element
v1.9より前に追加このフレームに対応するframe
またはiframe
要素ハンドルを返します。
これは、element_handle.content_frame()の逆です。返されたハンドルは実際には親フレームに属していることに注意してください。
フレームがframeElement()
が返される前にデタッチされた場合、このメソッドはエラーをスローします。
使用法
- Sync
- Async
frame_element = frame.frame_element()
content_frame = frame_element.content_frame()
assert frame == content_frame
frame_element = await frame.frame_element()
content_frame = await frame_element.content_frame()
assert frame == content_frame
戻り値
frame_locator
追加: v1.17iframeを操作する場合、iframeに入り、そのiframe内の要素を選択できるフレームロケーターを作成できます。
使用法
次のスニペットは、<iframe id="my-frame">
のように、IDがmy-frame
のiframe内のテキスト「Submit」を持つ要素を検索します。
- Sync
- Async
locator = frame.frame_locator("#my-iframe").get_by_text("Submit")
locator.click()
locator = frame.frame_locator("#my-iframe").get_by_text("Submit")
await locator.click()
引数
戻り値
get_by_alt_text
追加: v1.27altテキストで要素を検索できます。
使用法
たとえば、このメソッドはaltテキスト「Playwright logo」で画像を検索します
<img alt='Playwright logo'>
- Sync
- Async
page.get_by_alt_text("Playwright logo").click()
await page.get_by_alt_text("Playwright logo").click()
引数
-
要素を検索するテキスト。
-
完全一致を検索するかどうか:大文字小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白はトリムされることに注意してください。
戻り値
get_by_label
追加: v1.27関連付けられた <label>
または aria-labelledby
要素のテキスト、または aria-label
属性によって、入力要素を検索できます。
使用法
たとえば、このメソッドは、次の DOM で "Username" および "Password" というラベルの付いた入力を検索します。
<input aria-label="Username">
<label for="password-input">Password:</label>
<input id="password-input">
- Sync
- Async
page.get_by_label("Username").fill("john")
page.get_by_label("Password").fill("secret")
await page.get_by_label("Username").fill("john")
await page.get_by_label("Password").fill("secret")
引数
-
要素を検索するテキスト。
-
完全一致を検索するかどうか:大文字小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白はトリムされることに注意してください。
戻り値
get_by_placeholder
追加: v1.27プレースホルダー テキストによって入力要素を検索できます。
使用法
たとえば、次の DOM 構造について考えてみます。
<input type="email" placeholder="name@example.com" />
プレースホルダー テキストで検索した後、入力を埋めることができます。
- Sync
- Async
page.get_by_placeholder("name@example.com").fill("playwright@microsoft.com")
await page.get_by_placeholder("name@example.com").fill("playwright@microsoft.com")
引数
-
要素を検索するテキスト。
-
完全一致を検索するかどうか:大文字小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白はトリムされることに注意してください。
戻り値
get_by_role
追加: v1.27ARIA ロール、ARIA 属性、アクセシブルな名前によって要素を検索できます。
使用法
次の DOM 構造について考えてみます。
<h3>Sign up</h3>
<label>
<input type="checkbox" /> Subscribe
</label>
<br/>
<button>Submit</button>
暗黙的なロールによって各要素を検索できます。
- Sync
- Async
expect(page.get_by_role("heading", name="Sign up")).to_be_visible()
page.get_by_role("checkbox", name="Subscribe").check()
page.get_by_role("button", name=re.compile("submit", re.IGNORECASE)).click()
await expect(page.get_by_role("heading", name="Sign up")).to_be_visible()
await page.get_by_role("checkbox", name="Subscribe").check()
await page.get_by_role("button", name=re.compile("submit", re.IGNORECASE)).click()
引数
-
role
"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 ロール。
-
通常、
aria-checked
またはネイティブの<input type=checkbox>
コントロールによって設定される属性。aria-checked
の詳細をご覧ください。 -
通常、
aria-disabled
またはdisabled
によって設定される属性。注記他のほとんどの属性とは異なり、
disabled
は DOM 階層全体に継承されます。aria-disabled
の詳細をご覧ください。 -
name が完全に一致するかどうか:大文字と小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。name が正規表現の場合は無視されます。完全一致でも空白はトリムされることに注意してください。
-
通常、
aria-expanded
によって設定される属性。aria-expanded
の詳細をご覧ください。 -
非表示要素を一致させるかどうかを制御するオプション。デフォルトでは、ARIA によって定義されている、非表示でない要素のみがロール セレクターによって一致します。
aria-hidden
の詳細をご覧ください。 -
通常、ロール
heading
、listitem
、row
、treeitem
に存在する数値属性。<h1>-<h6>
要素のデフォルト値が指定されています。aria-level
の詳細をご覧ください。 -
アクセシブルな名前を一致させるオプション。デフォルトでは、大文字と小文字を区別せずに部分文字列を検索します。この動作を制御するには、exact を使用します。
アクセシブルな名前の詳細をご覧ください。
-
通常、
aria-pressed
によって設定される属性。aria-pressed
の詳細をご覧ください。 -
通常、
aria-selected
によって設定される属性。aria-selected
の詳細をご覧ください。
戻り値
詳細
ロール セレクターは、アクセシビリティ監査および適合性テストを置き換えるものではありません。代わりに、ARIA ガイドラインに関する早期フィードバックを提供します。
多くの HTML 要素には、ロール セレクターによって認識される、暗黙的に定義されたロールがあります。サポートされているすべてのロールはこちらにあります。ARIA ガイドラインでは、role
属性や aria-*
属性をデフォルト値に設定して、暗黙的なロールや属性を複製することは推奨されていません。
get_by_test_id
追加: v1.27テスト ID で要素を検索します。
使用法
次の DOM 構造について考えてみます。
<button data-testid="directions">Itinéraire</button>
テスト ID で要素を検索できます。
- Sync
- Async
page.get_by_test_id("directions").click()
await page.get_by_test_id("directions").click()
引数
戻り値
詳細
デフォルトでは、data-testid
属性がテスト ID として使用されます。必要に応じて、別のテスト ID 属性を構成するには、selectors.set_test_id_attribute() を使用します。
get_by_text
追加: v1.27指定されたテキストを含む要素を検索できます。
アクセシブルなロールなどの別の条件で一致させ、テキスト コンテンツでフィルターできる locator.filter() も参照してください。
使用法
次の DOM 構造について考えてみます。
<div>Hello <span>world</span></div>
<div>Hello</div>
テキストの部分文字列、完全な文字列、または正規表現で検索できます。
- Sync
- Async
# Matches <span>
page.get_by_text("world")
# Matches first <div>
page.get_by_text("Hello world")
# Matches second <div>
page.get_by_text("Hello", exact=True)
# Matches both <div>s
page.get_by_text(re.compile("Hello"))
# Matches second <div>
page.get_by_text(re.compile("^hello$", re.IGNORECASE))
# Matches <span>
page.get_by_text("world")
# Matches first <div>
page.get_by_text("Hello world")
# Matches second <div>
page.get_by_text("Hello", exact=True)
# Matches both <div>s
page.get_by_text(re.compile("Hello"))
# Matches second <div>
page.get_by_text(re.compile("^hello$", re.IGNORECASE))
引数
-
要素を検索するテキスト。
-
完全一致を検索するかどうか:大文字小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白はトリムされることに注意してください。
戻り値
詳細
テキストによるマッチングは、完全一致の場合でも常に空白を正規化します。たとえば、複数のスペースを 1 つのスペースに変換し、改行をスペースに変換し、先頭と末尾の空白を無視します。
タイプが button
および submit
の入力要素は、テキスト コンテンツではなく value
によって一致します。たとえば、テキスト "Log in"
で検索すると、<input type=button value="Log in">
が一致します。
get_by_title
追加: v1.27title 属性によって要素を検索できます。
使用法
次の DOM 構造について考えてみます。
<span title='Issues count'>25 issues</span>
タイトル テキストで検索した後、問題の数を確認できます。
- Sync
- Async
expect(page.get_by_title("Issues count")).to_have_text("25 issues")
await expect(page.get_by_title("Issues count")).to_have_text("25 issues")
引数
-
要素を検索するテキスト。
-
完全一致を検索するかどうか:大文字小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白はトリムされることに注意してください。
戻り値
goto
v1.9より前に追加メインリソースレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。
このメソッドは、次の場合にエラーをスローします。
- SSL エラーが発生した場合 (例: 自己署名証明書の場合)。
- ターゲット URL が無効である。
- ナビゲーション中にタイムアウトを超過した場合。
- リモート サーバーが応答しないか、到達不能である。
- メインリソースのロードに失敗した場合。
このメソッドは、404 "Not Found" や 500 "Internal Server Error" などの有効な HTTP ステータス コードがリモート サーバーから返された場合、エラーをスローしません。このようなレスポンスのステータス コードは、response.status を呼び出すことで取得できます。
このメソッドは、エラーをスローするか、メインリソースレスポンスを返します。唯一の例外は、about:blank
へのナビゲーション、または異なるハッシュを持つ同じ URL へのナビゲーションで、これは成功し、null
を返します。
ヘッドレス モードでは、PDF ドキュメントへのナビゲーションはサポートされていません。アップストリームの問題を参照してください。
使用法
frame.goto(url)
frame.goto(url, **kwargs)
引数
-
フレームのナビゲーション先の URL。URL にはスキーム (例:
https://
) を含める必要があります。 -
Referer ヘッダーの値。提供された場合は、page.set_extra_http_headers() で設定された referer ヘッダーの値よりも優先されます。
-
操作の最大時間 (ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには
0
を渡します。デフォルト値は、browser_context.set_default_navigation_timeout()、browser_context.set_default_timeout()、page.set_default_navigation_timeout()、または page.set_default_timeout() メソッドを使用して変更できます。 -
wait_until
"load" | "domcontentloaded" | "networkidle" | "commit" (オプション)#操作が成功したとみなすタイミング。デフォルトは
load
です。イベントは次のいずれかになります。'domcontentloaded'
-DOMContentLoaded
イベントが発生したときに操作が完了したとみなします。'load'
-load
イベントが発生したときに操作が完了したとみなします。'networkidle'
- 非推奨 少なくとも500
ミリ秒ネットワーク接続がない場合に操作が完了したとみなします。テストにはこのメソッドを使用しないでください。代わりに、ウェブ アサーションを使用して準備状態を評価してください。'commit'
- ネットワーク レスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したとみなします。
戻り値
is_enabled
v1.9より前に追加要素が有効かどうかを返します。
使用法
frame.is_enabled(selector)
frame.is_enabled(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
locator
追加: v1.14このメソッドは、このページ/フレーム上でアクションを実行するために使用できる要素ロケーターを返します。ロケーターは、アクションを実行する直前に要素に解決されるため、同じロケーターに対する一連のアクションは、実際には異なるDOM要素に対して実行される可能性があります。これは、これらのアクション間のDOM構造が変更された場合に発生します。
使用法
frame.locator(selector)
frame.locator(selector, **kwargs)
引数
-
DOM要素を解決するときに使用するセレクター。
-
メソッドの結果を、この相対ロケーターに一致する要素を含むものに絞り込みます。たとえば、
text=Playwright
を持つarticle
は、<article><div>Playwright</div></article>
に一致します。内部ロケーターは、外部ロケーターに対して相対的でなければなりません。ドキュメントルートからではなく、外部ロケーターの一致からクエリが開始されます。たとえば、
<article><content><div>Playwright</div></content></article>
でdiv
を持つcontent
を見つけることができます。ただし、article div
を持つcontent
を探すと、内部ロケーターは相対的でなければならず、content
の外側の要素を使用してはならないため、失敗します。外部ロケーターと内部ロケーターは同じフレームに属している必要があることに注意してください。内部ロケーターにFrameLocatorを含めることはできません。
-
has_not
Locator (オプション)追加: v1.33#内部ロケーターに一致する要素を含まない要素に一致します。内部ロケーターは外部ロケーターに対してクエリされます。たとえば、
div
を持たないarticle
は、<article><span>Playwright</span></article>
に一致します。外部ロケーターと内部ロケーターは同じフレームに属している必要があることに注意してください。内部ロケーターにFrameLocatorを含めることはできません。
-
has_not_text
str | Pattern (オプション)追加: v1.33#指定されたテキストを内部、または子孫要素のどこかに含まない要素に一致します。[文字列]が渡されると、マッチングは大文字と小文字を区別せず、部分文字列を検索します。
-
has_text
str | Pattern (オプション)#指定されたテキストを内部、または子孫要素のどこかに含む要素に一致します。[文字列]が渡されると、マッチングは大文字と小文字を区別せず、部分文字列を検索します。たとえば、
"Playwright"
は<article><div>Playwright</div></article>
に一致します。
戻り値
set_content
v1.9より前に追加このメソッドは内部的にdocument.write()を呼び出し、その特定の特徴と動作をすべて継承します。
使用法
frame.set_content(html)
frame.set_content(html, **kwargs)
引数
-
ページに割り当てるHTMLマークアップ。
-
操作の最大時間 (ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには
0
を渡します。デフォルト値は、browser_context.set_default_navigation_timeout()、browser_context.set_default_timeout()、page.set_default_navigation_timeout()、または page.set_default_timeout() メソッドを使用して変更できます。 -
wait_until
"load" | "domcontentloaded" | "networkidle" | "commit" (オプション)#操作が成功したとみなすタイミング。デフォルトは
load
です。イベントは次のいずれかになります。'domcontentloaded'
-DOMContentLoaded
イベントが発生したときに操作が完了したとみなします。'load'
-load
イベントが発生したときに操作が完了したとみなします。'networkidle'
- 非推奨 少なくとも500
ミリ秒ネットワーク接続がない場合に操作が完了したとみなします。テストにはこのメソッドを使用しないでください。代わりに、ウェブ アサーションを使用して準備状態を評価してください。'commit'
- ネットワーク レスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したとみなします。
戻り値
title
v1.9より前に追加ページタイトルを返します。
使用法
frame.title()
戻り値
wait_for_function
v1.9より前に追加expressionが真の値を返したときに返り、その値を返します。
使用法
frame.wait_for_function()は、ビューポートサイズの変更を監視するために使用できます。
- Sync
- Async
from playwright.sync_api import sync_playwright, Playwright
def run(playwright: Playwright):
webkit = playwright.webkit
browser = webkit.launch()
page = browser.new_page()
page.evaluate("window.x = 0; setTimeout(() => { window.x = 100 }, 1000);")
page.main_frame.wait_for_function("() => window.x > 0")
browser.close()
with sync_playwright() as playwright:
run(playwright)
import asyncio
from playwright.async_api import async_playwright, Playwright
async def run(playwright: Playwright):
webkit = playwright.webkit
browser = await webkit.launch()
page = await browser.new_page()
await page.evaluate("window.x = 0; setTimeout(() => { window.x = 100 }, 1000);")
await page.main_frame.wait_for_function("() => window.x > 0")
await browser.close()
async def main():
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
frame.waitForFunction
関数の述語に引数を渡すには
- Sync
- Async
selector = ".foo"
frame.wait_for_function("selector => !!document.querySelector(selector)", selector)
selector = ".foo"
await frame.wait_for_function("selector => !!document.querySelector(selector)", selector)
引数
-
ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (オプション)#expressionに渡すオプションの引数。
-
polling
float | "raf" (オプション)#pollingが
'raf'
の場合、expressionはrequestAnimationFrame
コールバックで常に実行されます。pollingが数値の場合、関数が実行される間隔(ミリ秒単位)として扱われます。デフォルトはraf
です。 -
待機する最大時間(ミリ秒単位)。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには、0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
wait_for_load_state
v1.9より前に追加必要なロード状態に達するまで待機します。
これは、フレームが必要なロード状態に達すると返ります。デフォルトではload
です。このメソッドが呼び出されたときに、ナビゲーションがコミットされている必要があります。現在のドキュメントが必要な状態にすでに達している場合は、すぐに解決されます。
ほとんどの場合、Playwrightはすべてのアクションの前に自動的に待機するため、このメソッドは必要ありません。
使用法
- Sync
- Async
frame.click("button") # click triggers navigation.
frame.wait_for_load_state() # the promise resolves after "load" event.
await frame.click("button") # click triggers navigation.
await frame.wait_for_load_state() # the promise resolves after "load" event.
引数
-
state
"load" | "domcontentloaded" | "networkidle" (オプション)#待機するオプションのロード状態。デフォルトは
load
です。現在のドキュメントのロード中に状態がすでに達している場合、メソッドはすぐに解決されます。次のいずれかになります。'load'
-load
イベントがトリガーされるまで待機します。'domcontentloaded'
-DOMContentLoaded
イベントがトリガーされるまで待機します。'networkidle'
- 非推奨 少なくとも500
ミリ秒間、ネットワーク接続がない状態になるまで待機します。テストにこのメソッドを使用しないでください。代わりに、Webアサーションを使用して準備状態を評価してください。
-
操作の最大時間 (ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには
0
を渡します。デフォルト値は、browser_context.set_default_navigation_timeout()、browser_context.set_default_timeout()、page.set_default_navigation_timeout()、または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
wait_for_url
追加: v1.11フレームが指定されたURLに移動するのを待ちます。
使用法
- Sync
- Async
frame.click("a.delayed-navigation") # clicking the link will indirectly cause a navigation
frame.wait_for_url("**/target.html")
await frame.click("a.delayed-navigation") # clicking the link will indirectly cause a navigation
await frame.wait_for_url("**/target.html")
引数
-
url
str | Pattern | Callable[URL]:bool#ナビゲーションを待機中に一致するグロブパターン、正規表現パターン、またはURLを受け取る述語。パラメーターがワイルドカード文字を含まない文字列である場合、メソッドはその文字列と完全に等しいURLへのナビゲーションを待機することに注意してください。
-
操作の最大時間 (ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには
0
を渡します。デフォルト値は、browser_context.set_default_navigation_timeout()、browser_context.set_default_timeout()、page.set_default_navigation_timeout()、または page.set_default_timeout() メソッドを使用して変更できます。 -
wait_until
"load" | "domcontentloaded" | "networkidle" | "commit" (オプション)#操作が成功したとみなすタイミング。デフォルトは
load
です。イベントは次のいずれかになります。'domcontentloaded'
-DOMContentLoaded
イベントが発生したときに操作が完了したとみなします。'load'
-load
イベントが発生したときに操作が完了したとみなします。'networkidle'
- 非推奨 少なくとも500
ミリ秒ネットワーク接続がない場合に操作が完了したとみなします。テストにはこのメソッドを使用しないでください。代わりに、ウェブ アサーションを使用して準備状態を評価してください。'commit'
- ネットワーク レスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したとみなします。
戻り値
プロパティ
child_frames
v1.9より前に追加使用法
frame.child_frames
戻り値
is_detached
v1.9より前に追加フレームがデタッチされている場合はtrue
、そうでない場合はfalse
を返します。
使用法
frame.is_detached()
戻り値
name
v1.9より前に追加<frame>
タグで指定されているフレームの名前属性を返します。
名前が空の場合は、代わりにid属性を返します。
この値は、フレームの作成時に一度計算され、属性が後で変更されても更新されません。
使用法
frame.name
戻り値
page
v1.9より前に追加このフレームを含むページを返します。
使用法
frame.page
戻り値
parent_frame
v1.9より前に追加親フレーム(存在する場合)。デタッチされたフレームとメインフレームはnull
を返します。
使用法
frame.parent_frame
戻り値
url
v1.9より前に追加フレームのURLを返します。
使用法
frame.url
戻り値
非推奨
check
v1.9より前に追加代わりに、ロケーターベースのlocator.check()を使用してください。ロケーターの詳細を参照してください。
このメソッドは、次の手順を実行して、selectorに一致する要素をチェックします。
- selectorに一致する要素を検索します。一致する要素がない場合は、一致する要素がDOMにアタッチされるまで待機します。
- 一致する要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされている場合、このメソッドはすぐに返ります。
- forceオプションが設定されていない限り、一致する要素に対するアクション可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- page.mouseを使用して、要素の中央をクリックします。
- 要素がチェックされていることを確認します。そうでない場合、このメソッドは例外をスローします。
指定されたtimeout中にすべての手順が完了しなかった場合、このメソッドはTimeoutErrorをスローします。ゼロのタイムアウトを渡すと、これは無効になります。
使用法
frame.check(selector)
frame.check(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
position
Dict (オプション)追加: v1.11#要素のパディングボックスの左上隅を基準に使用するポイント。指定されていない場合は、要素の可視ポイントが使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
設定すると、このメソッドは操作性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。
戻り値
click
v1.9より前に追加代わりに、ロケーターベースのlocator.click()を使用してください。ロケーターの詳細を参照してください。
このメソッドは、次の手順を実行して、selectorに一致する要素をクリックします。
- selectorに一致する要素を検索します。一致する要素がない場合は、一致する要素がDOMにアタッチされるまで待機します。
- forceオプションが設定されていない限り、一致する要素に対するアクション可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- page.mouseを使用して、要素の中央、または指定されたpositionをクリックします。
- no_wait_afterオプションが設定されていない限り、開始されたナビゲーションが成功または失敗するまで待機します。
指定されたタイムアウト時間内にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトをゼロに設定すると、これは無効になります。
使用法
frame.click(selector)
frame.click(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
button
"left" | "right" | "middle" (オプション)#デフォルトは
left
です。 -
デフォルトは1です。UIEvent.detailを参照してください。
-
mousedown
とmouseup
の間で待機する時間(ミリ秒単位)。デフォルトは0です。 -
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (オプション)#押す修飾キー。操作中にこれらの修飾キーのみが押されるようにし、現在の修飾キーを元に戻します。指定しない場合は、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsとLinuxでは"Control"、macOSでは"Meta"に解決されます。
-
非推奨
このオプションは、将来的に
true
がデフォルトになります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページのロードが開始されるのを待機します。このフラグを設定することで、待機をオプトアウトできます。このオプションが必要になるのは、アクセスできないページにナビゲートするなど、例外的な場合に限られます。デフォルトは
false
です。 -
要素のパディングボックスの左上隅を基準に使用するポイント。指定されていない場合は、要素の可視ポイントが使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
設定すると、このメソッドはactionabilityチェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションを実行できる状態になるまで待機するのに役立ちます。キーボードのmodifiers
は、それらのキーが押されている場合にのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
戻り値
dblclick
v1.9より前に追加代わりにロケーターベースのlocator.dblclick()を使用してください。ロケーターの詳細をご覧ください。
このメソッドは、次のステップを実行して、セレクターに一致する要素をダブルクリックします。
- セレクターに一致する要素を見つけます。一致する要素がない場合は、一致する要素がDOMに追加されるまで待機します。
- forceオプションが設定されていない限り、一致した要素に対してactionabilityチェックを実行するまで待機します。チェック中に要素が分離された場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- page.mouseを使用して、要素の中心、または指定されたpositionでダブルクリックします。
dblclick()
の最初のクリックでナビゲーションイベントがトリガーされた場合、このメソッドは例外をスローします。
指定されたタイムアウト時間内にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトをゼロに設定すると、これは無効になります。
frame.dblclick()
は、2つのclick
イベントと1つのdblclick
イベントをディスパッチします。
使用法
frame.dblclick(selector)
frame.dblclick(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
button
"left" | "right" | "middle" (オプション)#デフォルトは
left
です。 -
mousedown
とmouseup
の間で待機する時間(ミリ秒単位)。デフォルトは0です。 -
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (オプション)#押す修飾キー。操作中にこれらの修飾キーのみが押されるようにし、現在の修飾キーを元に戻します。指定しない場合は、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsとLinuxでは"Control"、macOSでは"Meta"に解決されます。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
要素のパディングボックスの左上隅を基準に使用するポイント。指定されていない場合は、要素の可視ポイントが使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
設定すると、このメソッドはactionabilityチェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションを実行できる状態になるまで待機するのに役立ちます。キーボードのmodifiers
は、それらのキーが押されている場合にのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
戻り値
dispatch_event
v1.9より前に追加代わりにロケーターベースのlocator.dispatch_event()を使用してください。ロケーターの詳細をご覧ください。
以下のスニペットは、要素でclick
イベントをディスパッチします。要素の可視状態に関係なく、click
がディスパッチされます。これは、element.click()の呼び出しと同等です。
使用法
- Sync
- Async
frame.dispatch_event("button#submit", "click")
await frame.dispatch_event("button#submit", "click")
内部的には、指定されたtypeに基づいてイベントのインスタンスを作成し、event_initプロパティで初期化し、要素にディスパッチします。イベントは、デフォルトでcomposed
、cancelable
であり、バブルします。
event_initはイベント固有であるため、初期プロパティのリストについては、イベントのドキュメントを参照してください。
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
ライブオブジェクトをイベントに渡したい場合は、JSHandle
をプロパティ値として指定することもできます。
- Sync
- Async
# note you can only create data_transfer in chromium and firefox
data_transfer = frame.evaluate_handle("new DataTransfer()")
frame.dispatch_event("#source", "dragstart", { "dataTransfer": data_transfer })
# note you can only create data_transfer in chromium and firefox
data_transfer = await frame.evaluate_handle("new DataTransfer()")
await frame.dispatch_event("#source", "dragstart", { "dataTransfer": data_transfer })
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
DOMイベントタイプ:
"click"
、"dragstart"
など。 -
event_init
EvaluationArgument (オプション)#オプションのイベント固有の初期化プロパティ。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
eval_on_selector
追加:v1.9このメソッドは、要素がactionabilityチェックに合格するのを待たないため、テストが不安定になる可能性があります。代わりに、locator.evaluate()、他のLocatorヘルパーメソッド、またはweb-firstアサーションを使用してください。
expressionの戻り値を返します。
このメソッドは、フレーム内の指定されたセレクターに一致する要素を見つけ、それをexpressionへの最初の引数として渡します。セレクターに一致する要素がない場合、メソッドはエラーをスローします。
expressionがPromiseを返す場合、frame.eval_on_selector()はPromiseが解決されるのを待って、その値を返します。
使用法
- Sync
- Async
search_value = frame.eval_on_selector("#search", "el => el.value")
preload_href = frame.eval_on_selector("link[rel=preload]", "el => el.href")
html = frame.eval_on_selector(".main-container", "(e, suffix) => e.outerHTML + suffix", "hello")
search_value = await frame.eval_on_selector("#search", "el => el.value")
preload_href = await frame.eval_on_selector("link[rel=preload]", "el => el.href")
html = await frame.eval_on_selector(".main-container", "(e, suffix) => e.outerHTML + suffix", "hello")
引数
-
クエリするセレクター。
-
ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (オプション)#expressionに渡すオプションの引数。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
戻り値
eval_on_selector_all
追加:v1.9ほとんどの場合、locator.evaluate_all()、他のLocatorヘルパーメソッド、およびweb-firstアサーションの方が適しています。
expressionの戻り値を返します。
このメソッドは、フレーム内の指定されたセレクターに一致するすべての要素を見つけ、一致した要素の配列をexpressionへの最初の引数として渡します。
expressionがPromiseを返す場合、frame.eval_on_selector_all()はPromiseが解決されるのを待って、その値を返します。
使用法
- Sync
- Async
divs_counts = frame.eval_on_selector_all("div", "(divs, min) => divs.length >= min", 10)
divs_counts = await frame.eval_on_selector_all("div", "(divs, min) => divs.length >= min", 10)
引数
-
クエリするセレクター。
-
ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (オプション)#expressionに渡すオプションの引数。
戻り値
expect_navigation
v1.9より前に追加このメソッドは本質的に競合状態になりやすいため、代わりにframe.wait_for_url()を使用してください。
フレームのナビゲーションを待機し、メインリソースのレスポンスを返します。複数のリダイレクトがある場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。異なるアンカーへのナビゲーションまたはHistory APIの使用によるナビゲーションの場合、ナビゲーションはnull
で解決されます。
使用法
このメソッドは、フレームが新しいURLにナビゲートするのを待機します。フレームを間接的にナビゲートさせるコードを実行する場合に便利です。次の例を検討してください。
- Sync
- Async
with frame.expect_navigation():
frame.click("a.delayed-navigation") # clicking the link will indirectly cause a navigation
# Resolves after navigation has finished
async with frame.expect_navigation():
await frame.click("a.delayed-navigation") # clicking the link will indirectly cause a navigation
# Resolves after navigation has finished
URLを変更するためのHistory APIの使用は、ナビゲーションと見なされます。
引数
-
操作の最大時間 (ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには
0
を渡します。デフォルト値は、browser_context.set_default_navigation_timeout()、browser_context.set_default_timeout()、page.set_default_navigation_timeout()、または page.set_default_timeout() メソッドを使用して変更できます。 -
url
str | Pattern | Callable[URL]:bool (オプション)#ナビゲーションを待機中に一致するグロブパターン、正規表現パターン、またはURLを受け取る述語。パラメーターがワイルドカード文字を含まない文字列である場合、メソッドはその文字列と完全に等しいURLへのナビゲーションを待機することに注意してください。
-
wait_until
"load" | "domcontentloaded" | "networkidle" | "commit" (オプション)#操作が成功したとみなすタイミング。デフォルトは
load
です。イベントは次のいずれかになります。'domcontentloaded'
-DOMContentLoaded
イベントが発生したときに操作が完了したとみなします。'load'
-load
イベントが発生したときに操作が完了したとみなします。'networkidle'
- 非推奨 少なくとも500
ミリ秒ネットワーク接続がない場合に操作が完了したとみなします。テストにはこのメソッドを使用しないでください。代わりに、ウェブ アサーションを使用して準備状態を評価してください。'commit'
- ネットワーク レスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したとみなします。
戻り値
fill
v1.9より前に追加代わりにロケーターベースのlocator.fill()を使用してください。ロケーターの詳細をご覧ください。
このメソッドは、セレクターに一致する要素を待機し、actionabilityチェックを待機し、要素にフォーカスを当て、それを入力し、入力後にinput
イベントをトリガーします。入力フィールドをクリアするには、空の文字列を渡すことができることに注意してください。
ターゲット要素が<input>
、<textarea>
、または[contenteditable]
要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連するコントロールを持つ<label>
要素内にある場合、代わりにコントロールが入力されます。
きめ細かいキーボードイベントを送信するには、locator.press_sequentially()を使用してください。
使用法
frame.fill(selector, value)
frame.fill(selector, value, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
<input>
、<textarea>
、または[contenteditable]
要素に入力する値。 -
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
フォーカス
v1.9より前に追加代わりにロケーターベースのlocator.focus()を使用してください。ロケーターの詳細はこちらをご覧ください。
このメソッドは、selectorを使用して要素を取得し、フォーカスを当てます。selectorに一致する要素がない場合、一致する要素がDOMに現れるまで待機します。
使用法
frame.focus(selector)
frame.focus(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
get_attribute
v1.9より前に追加代わりにロケーターベースのlocator.get_attribute()を使用してください。ロケーターの詳細はこちらをご覧ください。
要素の属性値を返します。
使用法
frame.get_attribute(selector, name)
frame.get_attribute(selector, name, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
値を取得する属性名。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
hover
v1.9より前に追加代わりにロケーターベースのlocator.hover()を使用してください。ロケーターの詳細はこちらをご覧ください。
このメソッドは、次の手順を実行してselectorに一致する要素にマウスオーバーします。
- selectorに一致する要素を検索します。存在しない場合は、一致する要素がDOMに追加されるまで待機します。
- forceオプションが設定されていない限り、一致した要素に対して操作可能性チェックを待機します。チェック中に要素が切り離された場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- page.mouseを使用して、要素の中心、または指定された位置にマウスオーバーします。
指定されたtimeoutの間に上記の手順がすべて完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトをゼロにすると、この処理は無効になります。
使用法
frame.hover(selector)
frame.hover(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (任意)#押す修飾キー。操作中にこれらの修飾キーのみが押されるようにし、現在の修飾キーを元に戻します。指定しない場合は、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsとLinuxでは"Control"、macOSでは"Meta"に解決されます。
-
no_wait_after
bool (任意)追加: v1.28#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
要素のパディングボックスの左上隅を基準に使用するポイント。指定されていない場合は、要素の可視ポイントが使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
設定すると、このメソッドはactionabilityチェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションを実行できる状態になるまで待機するのに役立ちます。キーボードのmodifiers
は、それらのキーが押されている場合にのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
戻り値
inner_html
v1.9より前に追加代わりにロケーターベースのlocator.inner_html()を使用してください。ロケーターの詳細はこちらをご覧ください。
element.innerHTML
を返します。
使用法
frame.inner_html(selector)
frame.inner_html(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
inner_text
v1.9より前に追加代わりにロケーターベースのlocator.inner_text()を使用してください。ロケーターの詳細はこちらをご覧ください。
element.innerText
を返します。
使用法
frame.inner_text(selector)
frame.inner_text(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
input_value
追加: v1.13代わりにロケーターベースのlocator.input_value()を使用してください。ロケーターの詳細はこちらをご覧ください。
選択された<input>
、<textarea>
、または<select>
要素のinput.value
を返します。
入力要素以外の場合はエラーをスローします。ただし、要素が関連付けられたコントロールを持つ<label>
要素内にある場合は、コントロールの値を返します。
使用法
frame.input_value(selector)
frame.input_value(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
is_checked
v1.9より前に追加代わりにロケーターベースのlocator.is_checked()を使用してください。ロケーターの詳細はこちらをご覧ください。
要素がチェックされているかどうかを返します。要素がチェックボックスまたはラジオ入力でない場合はエラーをスローします。
使用法
frame.is_checked(selector)
frame.is_checked(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
is_disabled
v1.9より前に追加代わりにロケーターベースのlocator.is_disabled()を使用してください。ロケーターの詳細はこちらをご覧ください。
要素が無効になっているかどうかを返します。有効の反対です。
使用法
frame.is_disabled(selector)
frame.is_disabled(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
is_editable
v1.9より前に追加代わりにロケーターベースのlocator.is_editable()を使用してください。ロケーターの詳細はこちらをご覧ください。
要素が編集可能かどうかを返します。
使用法
frame.is_editable(selector)
frame.is_editable(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
is_hidden
v1.9より前に追加代わりにロケーターベースのlocator.is_hidden()を使用してください。ロケーターの詳細はこちらをご覧ください。
要素が非表示かどうかを返します。表示の反対です。selectorがどの要素にも一致しない場合は、非表示とみなされます。
使用法
frame.is_hidden(selector)
frame.is_hidden(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
非推奨
このオプションは無視されます。frame.is_hidden()は、要素が非表示になるのを待たずにすぐに返します。
戻り値
is_visible
v1.9より前に追加代わりにロケーターベースのlocator.is_visible()を使用してください。ロケーターの詳細はこちらをご覧ください。
要素が表示かどうかを返します。selectorがどの要素にも一致しない場合は、表示されないとみなされます。
使用法
frame.is_visible(selector)
frame.is_visible(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
非推奨
このオプションは無視されます。frame.is_visible()は、要素が表示されるのを待たずにすぐに返します。
戻り値
press
v1.9より前に追加代わりにロケーターベースのlocator.press()を使用してください。ロケーターの詳細はこちらをご覧ください。
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"
などのショートカットもサポートされています。修飾子とともに指定された場合、修飾子が押され、後続のキーが押されている間保持されます。
使用法
frame.press(selector, key)
frame.press(selector, key, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
押すキーの名前または生成する文字(
ArrowLeft
やa
など)。 -
keydown
とkeyup
の間で待機する時間(ミリ秒単位)。デフォルトは0です。 -
非推奨
このオプションは、将来的に
true
がデフォルトになります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページのロードが開始されるのを待機します。このフラグを設定することで、待機をオプトアウトできます。このオプションが必要になるのは、アクセスできないページにナビゲートするなど、例外的な場合に限られます。デフォルトは
false
です。 -
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
query_selector
追加:v1.9代わりにロケーターベースのframe.locator()を使用してください。ロケーターの詳細はこちらをご覧ください。
フレーム要素を指す ElementHandle を返します。
ElementHandle の使用は推奨されません。Locator オブジェクトと Web ファーストのアサーションを使用してください。
このメソッドは、フレーム内で指定されたセレクターに一致する要素を検索します。セレクターに一致する要素がない場合は、null
を返します。
使用法
frame.query_selector(selector)
frame.query_selector(selector, **kwargs)
引数
-
クエリするセレクター。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
戻り値
query_selector_all
追加:v1.9代わりにロケーターベースのframe.locator()を使用してください。ロケーターの詳細はこちらをご覧ください。
フレーム要素を指す ElementHandle の配列を返します。
ElementHandle の使用は推奨されません。Locator オブジェクトを使用してください。
このメソッドは、フレーム内で指定されたセレクターに一致するすべての要素を検索します。セレクターに一致する要素がない場合は、空の配列を返します。
使用法
frame.query_selector_all(selector)
引数
戻り値
select_option
v1.9より前に追加代わりに、ロケーターベースの locator.select_option() を使用してください。詳細については、ロケーターを参照してください。
このメソッドは、セレクターに一致する要素を待ち、操作性チェックを待ち、指定されたすべてのオプションが <select>
要素に存在することを確認し、これらのオプションを選択します。
ターゲット要素が <select>
要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連する コントロールを持つ <label>
要素内にある場合、代わりにそのコントロールが使用されます。
正常に選択されたオプション値の配列を返します。
指定されたすべてのオプションが選択されると、change
および input
イベントをトリガーします。
使用法
- Sync
- Async
# Single selection matching the value or label
frame.select_option("select#colors", "blue")
# single selection matching both the label
frame.select_option("select#colors", label="blue")
# multiple selection
frame.select_option("select#colors", value=["red", "green", "blue"])
# Single selection matching the value or label
await frame.select_option("select#colors", "blue")
# single selection matching the label
await frame.select_option("select#colors", label="blue")
# multiple selection
await frame.select_option("select#colors", value=["red", "green", "blue"])
引数
-
クエリするセレクター。
-
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
element
ElementHandle | List[ElementHandle] (オプション)#選択するオプション要素。 オプション。
-
index
int | List[int] (オプション)#インデックスで選択するオプション。 オプション。
-
value
str | List[str] (オプション)#値で選択するオプション。
<select>
にmultiple
属性がある場合、指定されたすべてのオプションが選択されます。それ以外の場合、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。 オプション。 -
label
str | List[str] (オプション)#ラベルで選択するオプション。
<select>
にmultiple
属性がある場合、指定されたすべてのオプションが選択されます。それ以外の場合、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。 オプション。
戻り値
set_checked
追加: v1.15代わりに、ロケーターベースの locator.set_checked() を使用してください。詳細については、ロケーターを参照してください。
このメソッドは、次の手順を実行して、セレクターに一致する要素をチェックまたはチェック解除します。
- セレクターに一致する要素を検索します。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待ちます。
- 一致する要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。
- 要素がすでに正しいチェック状態になっている場合、このメソッドはすぐに返ります。
- force オプションが設定されていない限り、一致する要素に対する 操作性チェックを待ちます。チェック中に要素がデタッチされた場合、アクション全体がリトライされます。
- 必要に応じて、要素をビューにスクロールします。
- page.mouseを使用して、要素の中央をクリックします。
- 要素がチェックまたはチェック解除されたことを確認します。そうでない場合、このメソッドは例外をスローします。
指定された タイムアウト中にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これが無効になります。
使用法
frame.set_checked(selector, checked)
frame.set_checked(selector, checked, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
チェックボックスをチェックするか、チェックを外すか。
-
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
要素のパディングボックスの左上隅を基準に使用するポイント。指定されていない場合は、要素の可視ポイントが使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
設定すると、このメソッドは操作性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。
戻り値
set_input_files
v1.9より前に追加代わりに、ロケーターベースの locator.set_input_files() を使用してください。詳細については、ロケーターを参照してください。
ファイル入力の値をこれらのファイルパスまたはファイルに設定します。filePaths
の一部が相対パスの場合、それらは現在の作業ディレクトリからの相対パスとして解決されます。空の配列の場合、選択されたファイルをクリアします。
このメソッドは、セレクターが input 要素を指すことを想定しています。ただし、要素が関連する コントロールを持つ <label>
要素内にある場合、代わりにコントロールをターゲットにします。
使用法
frame.set_input_files(selector, files)
frame.set_input_files(selector, files, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
files
Union[str, pathlib.Path] | List[Union[str, pathlib.Path]] | Dict | List[Dict]# -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
tap
v1.9より前に追加代わりに、ロケーターベースの locator.tap() を使用してください。詳細については、ロケーターを参照してください。
このメソッドは、次の手順を実行して、セレクターに一致する要素をタップします。
- セレクターに一致する要素を検索します。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待ちます。
- force オプションが設定されていない限り、一致する要素に対する 操作性チェックを待ちます。チェック中に要素がデタッチされた場合、アクション全体がリトライされます。
- 必要に応じて、要素をビューにスクロールします。
- page.touchscreen を使用して、要素の中心、または指定された position をタップします。
指定された タイムアウト中にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これが無効になります。
frame.tap()
には、ブラウザコンテキストの hasTouch
オプションが true に設定されている必要があります。
使用法
frame.tap(selector)
frame.tap(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (オプション)#押す修飾キー。操作中にこれらの修飾キーのみが押されるようにし、現在の修飾キーを元に戻します。指定しない場合は、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsとLinuxでは"Control"、macOSでは"Meta"に解決されます。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
要素のパディングボックスの左上隅を基準に使用するポイント。指定されていない場合は、要素の可視ポイントが使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
設定すると、このメソッドはactionabilityチェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションを実行できる状態になるまで待機するのに役立ちます。キーボードのmodifiers
は、それらのキーが押されている場合にのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
戻り値
text_content
v1.9より前に追加代わりに、ロケーターベースの locator.text_content() を使用してください。詳細については、ロケーターを参照してください。
element.textContent
を返します。
使用法
frame.text_content(selector)
frame.text_content(selector, **kwargs)
引数
-
要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
type
v1.9より前に追加ほとんどの場合、locator.fill() を使用する必要があります。ページ上に特別なキーボード処理がある場合にのみ、キーを1つずつ押す必要があります。この場合は、locator.press_sequentially() を使用します。
テキスト内の各文字に対して、keydown
、keypress
/input
、および keyup
イベントを送信します。frame.type
は、きめ細かいキーボードイベントを送信するために使用できます。フォームフィールドに値を入力するには、frame.fill() を使用します。
Control
や ArrowDown
などの特殊キーを押すには、keyboard.press() を使用します。
使用法
引数
-
selector
str要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
text
strフォーカスされた要素に入力するテキスト。
-
delay
float (オプション)キーを押す間隔をミリ秒単位で指定します。デフォルトは0です。
-
no_wait_after
bool (オプション)非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
timeout
float (オプション)ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
uncheck
v1.9より前に追加代わりにロケーターベースのlocator.uncheck()を使用してください。ロケーターの詳細をお読みください。
このメソッドは、次のステップを実行して、selectorに一致する要素をチェックします。
- selectorに一致する要素を検索します。存在しない場合は、一致する要素がDOMにアタッチされるまで待ちます。
- 一致する要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされていない場合、このメソッドはすぐに返ります。
- forceオプションが設定されていない限り、一致する要素のactionabilityチェックを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- page.mouseを使用して、要素の中央をクリックします。
- 要素がチェックされていないことを確認します。そうでない場合、このメソッドは例外をスローします。
指定されたtimeout中にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトをゼロにすると、これは無効になります。
使用法
frame.uncheck(selector)
frame.uncheck(selector, **kwargs)
引数
-
selector
str要素を検索するためのセレクター。セレクターに一致する要素が複数ある場合は、最初の要素が使用されます。
-
force
bool (オプション)操作性チェックをバイパスするかどうか。デフォルトは
false
です。 -
no_wait_after
bool (オプション)非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
position
Dict (オプション)追加: v1.11#要素のパディングボックスの左上隅を基準に使用するポイント。指定されていない場合は、要素の可視ポイントが使用されます。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
timeout
float (オプション)ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。 -
設定すると、このメソッドは操作性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。
戻り値
wait_for_selector
v1.9より前に追加代わりに、可視性をアサートするWebアサーションまたはロケーターベースのlocator.wait_for()を使用してください。ロケーターの詳細をお読みください。
selectorで指定された要素がstateオプションを満たすと返ります。hidden
またはdetached
を待機している場合はnull
を返します。
Playwrightは、アクションを実行する前に、要素が準備できるのを自動的に待ちます。LocatorオブジェクトとWebファーストアサーションを使用すると、コードはwait-for-selectorフリーになります。
selectorがstateオプション(domに表示/非表示になるか、または可視/非表示になるかのいずれか)を満たすのを待ちます。メソッドを呼び出す時点でselectorがすでに条件を満たしている場合、メソッドはすぐに返ります。セレクターがtimeoutミリ秒間条件を満たさない場合、関数は例外をスローします。
使用法
このメソッドはナビゲーション間で機能します
- Sync
- Async
from playwright.sync_api import sync_playwright, Playwright
def run(playwright: Playwright):
chromium = playwright.chromium
browser = chromium.launch()
page = browser.new_page()
for current_url in ["https://google.com", "https://bbc.com"]:
page.goto(current_url, wait_until="domcontentloaded")
element = page.main_frame.wait_for_selector("img")
print("Loaded image: " + str(element.get_attribute("src")))
browser.close()
with sync_playwright() as playwright:
run(playwright)
import asyncio
from playwright.async_api import async_playwright, Playwright
async def run(playwright: Playwright):
chromium = playwright.chromium
browser = await chromium.launch()
page = await browser.new_page()
for current_url in ["https://google.com", "https://bbc.com"]:
await page.goto(current_url, wait_until="domcontentloaded")
element = await page.main_frame.wait_for_selector("img")
print("Loaded image: " + str(await element.get_attribute("src")))
await browser.close()
async def main():
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
引数
-
selector
strクエリするセレクター。
-
state
"attached" | "detached" | "visible" | "hidden" (オプション)デフォルトは
'visible'
です。次のいずれかになります。'attached'
- 要素がDOMに存在するように待ちます。'detached'
- 要素がDOMに存在しなくなるのを待ちます。'visible'
- 要素に空でないバウンディングボックスがあり、visibility:hidden
がないのを待ちます。コンテンツがない要素またはdisplay:none
の要素は空のバウンディングボックスを持ち、可視とは見なされないことに注意してください。'hidden'
- 要素がDOMからデタッチされるか、空のバウンディングボックスまたはvisibility:hidden
を持つことを待ちます。これは'visible'
オプションの反対です。
-
trueの場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決されると、この呼び出しは例外をスローします。
-
timeout
float (オプション)ミリ秒単位の最大時間。デフォルトは
30000
(30秒)です。タイムアウトを無効にするには0
を渡します。デフォルト値は、browser_context.set_default_timeout()またはpage.set_default_timeout()メソッドを使用して変更できます。
戻り値
wait_for_timeout
v1.9より前に追加実稼働環境ではタイムアウトを待たないでください。時間を待つテストは本質的に不安定です。Locatorアクションと自動的に待機するWebアサーションを使用してください。
指定されたtimeoutをミリ秒単位で待ちます。
frame.waitForTimeout()
はデバッグにのみ使用する必要があることに注意してください。実稼働環境でタイマーを使用するテストは不安定になります。代わりに、ネットワークイベント、セレクターの可視化などの信号を使用してください。
使用法
frame.wait_for_timeout(timeout)
引数
-
timeout
float待機するタイムアウト
戻り値