Перейти к основному содержимому

Frame

В любой момент времени страница предоставляет текущее дерево фреймов через методы page.main_frame и frame.child_frames.

Жизненный цикл объекта Frame контролируется тремя событиями, отправляемыми на объекте страницы:

  • page.on("frameattached") - срабатывает, когда фрейм присоединяется к странице. Фрейм может быть присоединен к странице только один раз.
  • page.on("framenavigated") - срабатывает, когда фрейм совершает навигацию на другой URL.
  • page.on("framedetached") - срабатывает, когда фрейм отсоединяется от страницы. Фрейм может быть отсоединен от страницы только один раз.

Пример вывода дерева фреймов:

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)

Методы

add_script_tag

Added before v1.9 frame.add_script_tag

Возвращает добавленный тег, когда срабатывает onload скрипта или когда содержимое скрипта было внедрено в фрейм.

Добавляет тег <script> на страницу с нужным URL или содержимым.

Использование

frame.add_script_tag()
frame.add_script_tag(**kwargs)

Аргументы

  • content str (optional)#

    Сырой JavaScript-контент для внедрения в фрейм.

  • path Union[str, pathlib.Path] (optional)#

    Путь к JavaScript-файлу для внедрения в фрейм. Если path является относительным путем, то он разрешается относительно текущей рабочей директории.

  • type str (optional)#

    Тип скрипта. Используйте 'module', чтобы загрузить JavaScript ES6 модуль. Подробнее см. script.

  • url str (optional)#

    URL скрипта для добавления.

Возвращает


add_style_tag

Added before v1.9 frame.add_style_tag

Возвращает добавленный тег, когда срабатывает onload таблицы стилей или когда CSS-контент был внедрен в фрейм.

Добавляет тег <link rel="stylesheet"> на страницу с нужным URL или тег <style type="text/css"> с содержимым.

Использование

frame.add_style_tag()
frame.add_style_tag(**kwargs)

Аргументы

  • content str (optional)#

    Сырой CSS-контент для внедрения в фрейм.

  • path Union[str, pathlib.Path] (optional)#

    Путь к CSS-файлу для внедрения в фрейм. Если path является относительным путем, то он разрешается относительно текущей рабочей директории.

  • url str (optional)#

    URL тега <link>.

Возвращает


content

Added before v1.9 frame.content

Получает полный HTML-контент фрейма, включая doctype.

Использование

frame.content()

Возвращает


drag_and_drop

Added in: v1.13 frame.drag_and_drop

Использование

frame.drag_and_drop(source, target)
frame.drag_and_drop(source, target, **kwargs)

Аргументы

  • source str#

    Селектор для поиска элемента, который нужно перетащить. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • target str#

    Селектор для поиска элемента, на который нужно сбросить. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • force bool (optional)#

    Нужно ли обходить проверки actionability. По умолчанию false.

  • no_wait_after bool (optional)#

    Deprecated

    Эта опция не имеет эффекта.

    Эта опция не имеет эффекта.

  • source_position Dict (optional) Added in: v1.14#

    Кликает на элементе источника в этой точке относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

  • target_position Dict (optional) Added in: v1.14#

    Сбрасывает на элементе цели в этой точке относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

  • trial bool (optional)#

    Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.

Возвращает


evaluate

Added before v1.9 frame.evaluate

Возвращает возвращаемое значение expression.

Если функция, переданная в frame.evaluate(), возвращает Promise, то frame.evaluate() будет ждать разрешения промиса и вернет его значение.

Если функция, переданная в frame.evaluate(), возвращает значение, не являющееся Serializable, то frame.evaluate() возвращает undefined. Playwright также поддерживает передачу некоторых дополнительных значений, которые не сериализуются через JSON: -0, NaN, Infinity, -Infinity.

Использование

result = frame.evaluate("([x, y]) => Promise.resolve(x * y)", [7, 8])
print(result) # prints "56"

Вместо функции также можно передать строку.

print(frame.evaluate("1 + 2")) # prints "3"
x = 10
print(frame.evaluate(f"1 + {x}")) # prints "11"

Экземпляры ElementHandle могут быть переданы в качестве аргумента в frame.evaluate():

body_handle = frame.evaluate("document.body")
html = frame.evaluate("([body, suffix]) => body.innerHTML + suffix", [body_handle, "hello"])
body_handle.dispose()

Аргументы

  • expression str#

    JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument (optional)#

    Необязательный аргумент для передачи в expression.

Возвращает


evaluate_handle

Added before v1.9 frame.evaluate_handle

Возвращает возвращаемое значение expression как JSHandle.

Единственное отличие между frame.evaluate() и frame.evaluate_handle() заключается в том, что frame.evaluate_handle() возвращает JSHandle.

Если функция, переданная в frame.evaluate_handle(), возвращает Promise, то frame.evaluate_handle() будет ждать разрешения промиса и вернет его значение.

Использование

a_window_handle = frame.evaluate_handle("Promise.resolve(window)")
a_window_handle # handle for the window object.

Вместо функции также можно передать строку.

a_handle = page.evaluate_handle("document") # handle for the "document"

Экземпляры JSHandle могут быть переданы в качестве аргумента в frame.evaluate_handle():

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()

Аргументы

  • expression str#

    JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument (optional)#

    Необязательный аргумент для передачи в expression.

Возвращает


frame_element

Added before v1.9 frame.frame_element

Возвращает дескриптор элемента frame или iframe, который соответствует данному фрейму.

Это обратная операция для element_handle.content_frame(). Обратите внимание, что возвращаемый дескриптор фактически принадлежит родительскому фрейму.

Этот метод выбрасывает ошибку, если фрейм был отсоединен до того, как frameElement() вернет результат.

Использование

frame_element = frame.frame_element()
content_frame = frame_element.content_frame()
assert frame == content_frame

Возвращает


frame_locator

Added in: v1.17 frame.frame_locator

При работе с iframes вы можете создать локатор фрейма, который войдет в iframe и позволит выбирать элементы в этом iframe.

Использование

Следующий фрагмент кода находит элемент с текстом "Submit" в iframe с id my-frame, например <iframe id="my-frame">:

locator = frame.frame_locator("#my-iframe").get_by_text("Submit")
locator.click()

Аргументы

  • selector str#

    Селектор для использования при разрешении DOM элемента.

Возвращает


get_by_alt_text

Added in: v1.27 frame.get_by_alt_text

Позволяет находить элементы по их alt тексту.

Использование

Например, этот метод найдет изображение по alt тексту "Playwright logo":

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

Аргументы

  • text str | Pattern#

    Текст для поиска элемента.

  • exact bool (optional)#

    Искать точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает


get_by_label

Added in: v1.27 frame.get_by_label

Позволяет находить элементы ввода по тексту связанного элемента <label> или элемента aria-labelledby, или по атрибуту aria-label.

Использование

Например, этот метод найдет поля ввода по меткам "Username" и "Password" в следующем DOM:

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

Аргументы

  • text str | Pattern#

    Текст для поиска элемента.

  • exact bool (optional)#

    Искать точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает


get_by_placeholder

Added in: v1.27 frame.get_by_placeholder

Позволяет находить элементы ввода по тексту-заполнителю (placeholder).

Использование

Например, рассмотрим следующую структуру DOM.

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

Вы можете заполнить поле ввода, найдя его по тексту-заполнителю:

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

Аргументы

  • text str | Pattern#

    Текст для поиска элемента.

  • exact bool (optional)#

    Искать точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает


get_by_role

Added in: v1.27 frame.get_by_role

Позволяет находить элементы по их ARIA роли, ARIA атрибутам и доступному имени.

Использование

Рассмотрим следующую структуру DOM.

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

Вы можете найти каждый элемент по его неявной роли:

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()

Аргументы

  • 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 роль.

  • checked bool (optional)#

    Атрибут, который обычно устанавливается с помощью aria-checked или нативных <input type=checkbox> контролов.

    Узнайте больше о aria-checked.

  • disabled bool (optional)#

    Атрибут, который обычно устанавливается с помощью aria-disabled или disabled.

    примечание

    В отличие от большинства других атрибутов, disabled наследуется через иерархию DOM. Узнайте больше о aria-disabled.

  • exact bool (optional) Added in: v1.28#

    Совпадает ли name точно: с учетом регистра и всей строки. По умолчанию false. Игнорируется, когда name является регулярным выражением. Обратите внимание, что точное совпадение все равно обрезает пробелы.

  • expanded bool (optional)#

    Атрибут, который обычно устанавливается с помощью aria-expanded.

    Узнайте больше о aria-expanded.

  • include_hidden bool (optional)#

    Опция, которая контролирует, будут ли скрытые элементы соответствовать. По умолчанию, только не скрытые элементы, как определено ARIA, соответствуют селектору роли.

    Узнайте больше о aria-hidden.

  • level int (optional)#

    Числовой атрибут, который обычно присутствует для ролей heading, listitem, row, treeitem, с значениями по умолчанию для элементов <h1>-<h6>.

    Узнайте больше о aria-level.

  • name str | Pattern (optional)#

    Опция для сопоставления доступного имени. По умолчанию, сопоставление не учитывает регистр и ищет подстроку, используйте exact для управления этим поведением.

    Узнайте больше о доступном имени.

  • pressed bool (optional)#

    Атрибут, который обычно устанавливается с помощью aria-pressed.

    Узнайте больше о aria-pressed.

  • selected bool (optional)#

    Атрибут, который обычно устанавливается с помощью aria-selected.

    Узнайте больше о aria-selected.

Возвращает

Детали

Селектор роли не заменяет аудиты доступности и тесты на соответствие, но дает раннюю обратную связь о рекомендациях ARIA.

Многие HTML элементы имеют неявно определенную роль, которая распознается селектором роли. Вы можете найти все поддерживаемые роли здесь. Рекомендации ARIA не рекомендуют дублировать неявные роли и атрибуты, устанавливая role и/или aria-* атрибуты на значения по умолчанию.


get_by_test_id

Added in: v1.27 frame.get_by_test_id

Находит элемент по тестовому идентификатору.

Использование

Рассмотрим следующую структуру DOM.

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

Вы можете найти элемент по его тестовому идентификатору:

page.get_by_test_id("directions").click()

Аргументы

  • test_id str | Pattern#

    Идентификатор для поиска элемента.

Возвращает

Детали

По умолчанию, атрибут data-testid используется как тестовый идентификатор. Используйте selectors.set_test_id_attribute() для настройки другого атрибута тестового идентификатора, если это необходимо.


get_by_text

Added in: v1.27 frame.get_by_text

Позволяет находить элементы, содержащие заданный текст.

См. также locator.filter(), который позволяет сопоставлять по другим критериям, таким как доступная роль, а затем фильтровать по содержимому текста.

Использование

Рассмотрим следующую структуру DOM:

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

Вы можете находить элементы по подстроке текста, точной строке или регулярному выражению:

# Соответствует <span>
page.get_by_text("world")

# Соответствует первому <div>
page.get_by_text("Hello world")

# Соответствует второму <div>
page.get_by_text("Hello", exact=True)

# Соответствует обоим <div>
page.get_by_text(re.compile("Hello"))

# Соответствует второму <div>
page.get_by_text(re.compile("^hello$", re.IGNORECASE))

Аргументы

  • text str | Pattern#

    Текст для поиска элемента.

  • exact bool (optional)#

    Искать точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает

Детали

Поиск по тексту всегда нормализует пробелы, даже при точном совпадении. Например, он превращает несколько пробелов в один, заменяет разрывы строк на пробелы и игнорирует начальные и конечные пробелы.

Элементы ввода типа button и submit сопоставляются по их value, а не по содержимому текста. Например, поиск по тексту "Log in" соответствует <input type=button value="Log in">.


get_by_title

Added in: v1.27 frame.get_by_title

Позволяет находить элементы по их атрибуту title.

Использование

Рассмотрим следующую структуру DOM.

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

Вы можете проверить количество проблем, найдя его по тексту заголовка:

expect(page.get_by_title("Issues count")).to_have_text("25 issues")

Аргументы

  • text str | Pattern#

    Текст для поиска элемента.

  • exact bool (optional)#

    Искать точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает


goto

Added before v1.9 frame.goto

Возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация завершится ответом последнего перенаправления.

Метод вызовет ошибку, если:

  • произошла ошибка SSL (например, в случае самоподписанных сертификатов).
  • целевой URL недействителен.
  • timeout превышен во время навигации.
  • удаленный сервер не отвечает или недоступен.
  • основной ресурс не удалось загрузить.

Метод не вызовет ошибку, если удаленный сервер вернет любой допустимый код состояния HTTP, включая 404 "Not Found" и 500 "Internal Server Error". Код состояния для таких ответов можно получить, вызвав response.status.

примечание

Метод либо вызывает ошибку, либо возвращает ответ основного ресурса. Единственные исключения - это навигация на about:blank или навигация на тот же URL с другим хэшем, которые будут успешными и вернут null.

примечание

Режим без головы не поддерживает навигацию к PDF-документу. См. проблему в upstream.

Использование

frame.goto(url)
frame.goto(url, **kwargs)

Аргументы

  • url str#

    URL для навигации фрейма. URL должен включать схему, например, https://.

  • referer str (optional)#

    Значение заголовка Referer. Если указано, оно будет иметь приоритет над значением заголовка referer, установленным с помощью page.set_extra_http_headers().

  • timeout float (optional)#

    Максимальное время операции в миллисекундах, по умолчанию 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" (optional)#

    Когда считать операцию успешной, по умолчанию load. События могут быть:

    • 'domcontentloaded' - считать операцию завершенной, когда событие DOMContentLoaded будет вызвано.
    • 'load' - считать операцию завершенной, когда событие load будет вызвано.
    • 'networkidle' - НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум 500 мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.
    • 'commit' - считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.

Возвращает


is_enabled

Added before v1.9 frame.is_enabled

Возвращает, включен ли элемент (enabled).

Использование

frame.is_enabled(selector)
frame.is_enabled(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


locator

Added in: v1.14 frame.locator

Метод возвращает локатор элемента, который можно использовать для выполнения действий на этой странице / фрейме. Локатор разрешается в элемент непосредственно перед выполнением действия, поэтому серия действий на одном и том же локаторе может фактически выполняться на разных элементах DOM. Это произойдет, если структура DOM между этими действиями изменилась.

Узнайте больше о локаторах.

Узнайте больше о локаторах.

Использование

frame.locator(selector)
frame.locator(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для использования при разрешении элемента DOM.

  • has Locator (optional)#

    Сужает результаты метода до тех, которые содержат элементы, соответствующие этому относительному локатору. Например, article, который имеет text=Playwright, соответствует <article><div>Playwright</div></article>.

    Внутренний локатор должен быть относительным к внешнему локатору и запрашивается, начиная с совпадения внешнего локатора, а не с корня документа. Например, вы можете найти content, который имеет div в <article><content><div>Playwright</div></content></article>. Однако поиск content, который имеет article div, не удастся, потому что внутренний локатор должен быть относительным и не должен использовать элементы за пределами content.

    Обратите внимание, что внешние и внутренние локаторы должны принадлежать одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.

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

    Соответствует элементам, которые не содержат элемент, соответствующий внутреннему локатору. Внутренний локатор запрашивается относительно внешнего. Например, article, который не имеет div, соответствует <article><span>Playwright</span></article>.

    Обратите внимание, что внешние и внутренние локаторы должны принадлежать одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.

  • has_not_text str | Pattern (optional) Added in: v1.33#

    Соответствует элементам, которые не содержат указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче [строки] сопоставление не учитывает регистр и ищет подстроку.

  • has_text str | Pattern (optional)#

    Соответствует элементам, содержащим указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче [строки] сопоставление не учитывает регистр и ищет подстроку. Например, "Playwright" соответствует <article><div>Playwright</div></article>.

Возвращает


set_content

Added before v1.9 frame.set_content

Этот метод внутренне вызывает document.write(), наследуя все его специфические характеристики и поведения.

Использование

frame.set_content(html)
frame.set_content(html, **kwargs)

Аргументы

  • html str#

    HTML-разметка для назначения странице.

  • timeout float (optional)#

    Максимальное время операции в миллисекундах, по умолчанию 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" (optional)#

    Когда считать операцию успешной, по умолчанию load. События могут быть:

    • 'domcontentloaded' - считать операцию завершенной, когда событие DOMContentLoaded будет вызвано.
    • 'load' - считать операцию завершенной, когда событие load будет вызвано.
    • 'networkidle' - НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум 500 мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.
    • 'commit' - считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.

Возвращает


title

Added before v1.9 frame.title

Возвращает заголовок страницы.

Использование

frame.title()

Возвращает


wait_for_function

Added before v1.9 frame.wait_for_function

Возвращает, когда expression возвращает истинное значение, возвращает это значение.

Использование

frame.wait_for_function() можно использовать для наблюдения за изменением размера области просмотра:

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)

Чтобы передать аргумент в предикат функции frame.waitForFunction:

selector = ".foo"
frame.wait_for_function("selector => !!document.querySelector(selector)", selector)

Аргументы

  • expression str#

    JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument (optional)#

    Необязательный аргумент для передачи в expression.

  • polling float | "raf" (optional)#

    Если polling равно 'raf', то expression постоянно выполняется в requestAnimationFrame callback. Если polling является числом, то оно рассматривается как интервал в миллисекундах, через который функция будет выполняться. По умолчанию raf.

  • timeout float (optional)#

    Максимальное время ожидания в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


wait_for_load_state

Added before v1.9 frame.wait_for_load_state

Ожидает достижения требуемого состояния загрузки.

Этот метод возвращает управление, когда фрейм достигает требуемого состояния загрузки, по умолчанию load. Навигация должна быть завершена к моменту вызова этого метода. Если текущий документ уже достиг требуемого состояния, метод разрешается немедленно.

примечание

В большинстве случаев этот метод не требуется, так как Playwright автоматически ожидает перед каждым действием.

Использование

frame.click("button") # клик вызывает навигацию.
frame.wait_for_load_state() # обещание разрешается после события "load".

Аргументы

  • state "load" | "domcontentloaded" | "networkidle" (опционально)#

    Опциональное состояние загрузки, которое нужно ожидать, по умолчанию load. Если состояние уже было достигнуто при загрузке текущего документа, метод разрешается немедленно. Может быть одним из:

    • 'load' - ожидать, пока не будет вызвано событие load.
    • 'domcontentloaded' - ожидать, пока не будет вызвано событие DOMContentLoaded.
    • 'networkidle' - НЕ РЕКОМЕНДУЕТСЯ ожидать, пока не будет сетевых соединений в течение как минимум 500 мс. Не используйте этот метод для тестирования, вместо этого полагайтесь на веб-утверждения для оценки готовности.
  • timeout float (опционально)#

    Максимальное время операции в миллисекундах, по умолчанию 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

Added in: v1.11 frame.wait_for_url

Ожидает, пока фрейм перейдет на указанный URL.

Использование

frame.click("a.delayed-navigation") # клик по ссылке косвенно вызывает навигацию
frame.wait_for_url("**/target.html")

Аргументы

  • url str | Pattern | Callable[URL]:bool#

    Глобальный шаблон, регулярное выражение или предикат, принимающий URL для сопоставления во время ожидания навигации. Обратите внимание, что если параметр является строкой без символов подстановки, метод будет ожидать навигации на URL, который точно равен строке.

  • timeout float (опционально)#

    Максимальное время операции в миллисекундах, по умолчанию 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

Added before v1.9 frame.child_frames

Использование

frame.child_frames

Возвращает


is_detached

Added before v1.9 frame.is_detached

Возвращает true, если фрейм был отсоединен, или false в противном случае.

Использование

frame.is_detached()

Возвращает


name

Added before v1.9 frame.name

Возвращает атрибут name фрейма, как указано в теге.

Если имя пустое, возвращает атрибут id.

примечание

Это значение вычисляется один раз при создании фрейма и не будет обновляться, если атрибут изменится позже.

Использование

frame.name

Возвращает


page

Added before v1.9 frame.page

Возвращает страницу, содержащую этот фрейм.

Использование

frame.page

Возвращает


parent_frame

Added before v1.9 frame.parent_frame

Родительский фрейм, если есть. Отсоединенные фреймы и главные фреймы возвращают null.

Использование

frame.parent_frame

Возвращает


url

Added before v1.9 frame.url

Возвращает URL фрейма.

Использование

frame.url

Возвращает


Устаревшие

check

Added before v1.9 frame.check
Discouraged

Используйте основанный на локаторах locator.check() вместо этого. Подробнее о локаторах.

Этот метод отмечает элемент, соответствующий selector, выполняя следующие шаги:

  1. Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
  2. Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод вызывает ошибку. Если элемент уже отмечен, этот метод возвращает управление немедленно.
  3. Подождите, пока не будут выполнены проверки actionability на найденном элементе, если не установлен параметр force. Если элемент отсоединяется во время проверок, все действие повторяется.
  4. Прокрутите элемент в поле зрения, если это необходимо.
  5. Используйте page.mouse для клика в центре элемента.
  6. Убедитесь, что элемент теперь отмечен. Если нет, этот метод вызывает ошибку.

Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.

Использование

frame.check(selector)
frame.check(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.

  • force bool (опционально)#

    Нужно ли обходить проверки actionability. По умолчанию false.

  • no_wait_after bool (опционально)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • position Dict (опционально) Added in: v1.11#

    Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

  • strict bool (опционально) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (опционально)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

  • trial bool (опционально) Added in: v1.11#

    Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.

Возвращает


click

Added before v1.9 frame.click
Discouraged

Используйте основанный на локаторах locator.click() вместо этого. Подробнее о локаторах.

Этот метод кликает по элементу, соответствующему selector, выполняя следующие шаги:

  1. Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
  2. Подождите, пока не будут выполнены проверки actionability на найденном элементе, если не установлен параметр force. Если элемент отсоединяется во время проверок, все действие повторяется.
  3. Прокрутите элемент в поле зрения, если это необходимо.
  4. Используйте page.mouse для клика в центре элемента или в указанной position.
  5. Подождите, пока инициированные навигации не завершатся успешно или не завершатся с ошибкой, если не установлен параметр no_wait_after.

Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.

Использование

frame.click(selector)
frame.click(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.

  • button "left" | "right" | "middle" (опционально)#

    По умолчанию left.

  • click_count int (опционально)#

    по умолчанию 1. См. UIEvent.detail.

  • delay float (опционально)#

    Время ожидания между mousedown и mouseup в миллисекундах. По умолчанию 0.

  • force bool (опционально)#

    Нужно ли обходить проверки actionability. По умолчанию false.

  • modifiers List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (опционально)#

    Клавиши-модификаторы для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.

  • no_wait_after bool (опционально)#

    Deprecated

    Этот параметр по умолчанию будет true в будущем.

    Действия, инициирующие навигации, ожидают, пока эти навигации не произойдут и страницы не начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится этот параметр только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию false.

  • position Dict (опционально)#

    Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

  • strict bool (опционально) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (опционально)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

  • trial bool (опционально) Added in: v1.11#

    Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурные modifiers будут нажаты независимо от trial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.

Возвращает


dblclick

Added before v1.9 frame.dblclick
Discouraged

Используйте основанный на локаторах locator.dblclick() вместо этого. Подробнее о локаторах.

Этот метод выполняет двойной клик по элементу, соответствующему selector, выполняя следующие шаги:

  1. Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
  2. Подождите, пока не будут выполнены проверки actionability на найденном элементе, если не установлен параметр force. Если элемент отсоединяется во время проверок, все действие повторяется.
  3. Прокрутите элемент в поле зрения, если это необходимо.
  4. Используйте page.mouse для двойного клика в центре элемента или в указанной position. если первый клик dblclick() вызывает событие навигации, этот метод вызовет ошибку.

Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.

примечание

frame.dblclick() генерирует два события click и одно событие dblclick.

Использование

frame.dblclick(selector)
frame.dblclick(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.

  • button "left" | "right" | "middle" (опционально)#

    По умолчанию left.

  • delay float (опционально)#

    Время ожидания между mousedown и mouseup в миллисекундах. По умолчанию 0.

  • force bool (опционально)#

    Нужно ли обходить проверки actionability. По умолчанию false.

  • modifiers List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (опционально)#

    Клавиши-модификаторы для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.

  • no_wait_after bool (опционально)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • position Dict (опционально)#

    Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

  • strict bool (опционально) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (опционально)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

  • trial bool (опционально) Added in: v1.11#

    Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурные modifiers будут нажаты независимо от trial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.

Возвращает


dispatch_event

Added before v1.9 frame.dispatch_event
Discouraged

Use locator-based locator.dispatch_event() instead. Read more about locators.

Пример ниже отправляет событие click на элемент. Независимо от состояния видимости элемента, click отправляется. Это эквивалентно вызову element.click().

Использование

frame.dispatch_event("button#submit", "click")

Внутри создается экземпляр события на основе указанного type, инициализируется с помощью свойств event_init и отправляется на элемент. События по умолчанию composed, cancelable и всплывают.

Поскольку event_init специфичен для события, пожалуйста, обратитесь к документации по событиям для списков начальных свойств:

Вы также можете указать JSHandle в качестве значения свойства, если хотите, чтобы живые объекты передавались в событие:

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

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • type str#

    Тип DOM события: "click", "dragstart", и т.д.

  • event_init EvaluationArgument (optional)#

    Необязательные свойства инициализации, специфичные для события.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


eval_on_selector

Added in: v1.9 frame.eval_on_selector
Discouraged

This method does not wait for the element to pass the actionability checks and therefore can lead to the flaky tests. Use locator.evaluate(), other Locator helper methods or web-first assertions instead.

Возвращает возвращаемое значение expression.

Метод находит элемент, соответствующий указанному селектору в фрейме, и передает его в качестве первого аргумента в expression. Если ни один элемент не соответствует селектору, метод выбрасывает ошибку.

Если expression возвращает Promise, то frame.eval_on_selector() будет ждать разрешения промиса и вернет его значение.

Использование

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")

Аргументы

  • selector str#

    Селектор для запроса.

  • expression str#

    JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument (optional)#

    Необязательный аргумент для передачи в expression.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

Возвращает


eval_on_selector_all

Added in: v1.9 frame.eval_on_selector_all
Discouraged

In most cases, locator.evaluate_all(), other Locator helper methods and web-first assertions do a better job.

Возвращает возвращаемое значение expression.

Метод находит все элементы, соответствующие указанному селектору в фрейме, и передает массив найденных элементов в качестве первого аргумента в expression.

Если expression возвращает Promise, то frame.eval_on_selector_all() будет ждать разрешения промиса и вернет его значение.

Использование

divs_counts = frame.eval_on_selector_all("div", "(divs, min) => divs.length >= min", 10)

Аргументы

  • selector str#

    Селектор для запроса.

  • expression str#

    JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument (optional)#

    Необязательный аргумент для передачи в expression.

Возвращает


expect_navigation

Added before v1.9 frame.expect_navigation
Deprecated

This method is inherently racy, please use frame.wait_for_url() instead.

Ожидает навигации фрейма и возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация будет разрешена с ответом последнего перенаправления. В случае навигации к другому якорю или навигации из-за использования History API, навигация будет разрешена с null.

Использование

Этот метод ожидает, пока фрейм не перейдет на новый URL. Это полезно, когда вы выполняете код, который косвенно вызывает навигацию фрейма. Рассмотрим этот пример:

with frame.expect_navigation():
frame.click("a.delayed-navigation") # clicking the link will indirectly cause a navigation
# Resolves after navigation has finished
примечание

Использование History API для изменения URL считается навигацией.

Аргументы

  • timeout float (optional)#

    Максимальное время операции в миллисекундах, по умолчанию 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 (optional)#

    Глобальный шаблон, регулярное выражение или предикат, получающий URL для совпадения при ожидании навигации. Обратите внимание, что если параметр является строкой без символов подстановки, метод будет ждать навигации к URL, который точно равен строке.

  • wait_until "load" | "domcontentloaded" | "networkidle" | "commit" (optional)#

    Когда считать операцию успешной, по умолчанию load. События могут быть:

    • 'domcontentloaded' - считать операцию завершенной, когда событие DOMContentLoaded будет вызвано.
    • 'load' - считать операцию завершенной, когда событие load будет вызвано.
    • 'networkidle' - НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум 500 мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.
    • 'commit' - считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.

Возвращает


fill

Added before v1.9 frame.fill
Discouraged

Use locator-based locator.fill() instead. Read more about locators.

Этот метод ожидает элемент, соответствующий selector, ожидает проверки actionability, фокусируется на элементе, заполняет его и вызывает событие input после заполнения. Обратите внимание, что вы можете передать пустую строку, чтобы очистить поле ввода.

Если целевой элемент не является <input>, <textarea> или [contenteditable] элементом, этот метод выбрасывает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет связанный control, будет заполнен именно этот элемент управления.

Для отправки более детализированных событий клавиатуры используйте locator.press_sequentially().

Использование

frame.fill(selector, value)
frame.fill(selector, value, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • value str#

    Значение для заполнения элемента <input>, <textarea> или [contenteditable].

  • force bool (optional) Added in: v1.13#

    Следует ли обходить проверки actionability. По умолчанию false.

  • no_wait_after bool (optional)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods.

Возвращает


focus

Added before v1.9 frame.focus
Discouraged

Use locator-based locator.focus() instead. Read more about locators.

Этот метод получает элемент с selector и фокусируется на нем. Если нет элемента, соответствующего selector, метод ждет, пока соответствующий элемент не появится в DOM.

Использование

frame.focus(selector)
frame.focus(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods.

Возвращает


get_attribute

Added before v1.9 frame.get_attribute
Discouraged

Use locator-based locator.get_attribute() instead. Read more about locators.

Возвращает значение атрибута элемента.

Использование

frame.get_attribute(selector, name)
frame.get_attribute(selector, name, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • name str#

    Имя атрибута, для которого нужно получить значение.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods.

Возвращает


hover

Added before v1.9 frame.hover
Discouraged

Use locator-based locator.hover() instead. Read more about locators.

Этот метод наводит курсор на элемент, соответствующий selector, выполняя следующие шаги:

  1. Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
  2. Подождите, пока не будут выполнены проверки actionability на соответствующем элементе, если не установлена опция force. Если элемент отсоединяется во время проверок, все действие повторяется.
  3. Прокрутите элемент в поле зрения, если это необходимо.
  4. Используйте page.mouse, чтобы навести курсор на центр элемента или указанную position.

Если все шаги в совокупности не завершились в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.

Использование

frame.hover(selector)
frame.hover(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • force bool (optional)#

    Следует ли обходить проверки actionability. По умолчанию false.

  • modifiers List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (optional)#

    Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.

  • no_wait_after bool (optional) Added in: v1.28#

    Deprecated

    Эта опция не имеет эффекта.

    Эта опция не имеет эффекта.

  • position Dict (optional)#

    Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

  • trial bool (optional) Added in: v1.11#

    Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурные modifiers будут нажаты независимо от trial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.

Возвращает


inner_html

Added before v1.9 frame.inner_html
Discouraged

Use locator-based locator.inner_html() instead. Read more about locators.

Возвращает element.innerHTML.

Использование

frame.inner_html(selector)
frame.inner_html(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


inner_text

Added before v1.9 frame.inner_text
Discouraged

Use locator-based locator.inner_text() instead. Read more about locators.

Возвращает element.innerText.

Использование

frame.inner_text(selector)
frame.inner_text(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


input_value

Added in: v1.13 frame.input_value
Discouraged

Use locator-based locator.input_value() instead. Read more about locators.

Возвращает input.value для выбранного элемента <input>, <textarea> или <select>.

Вызывает ошибку для не-вводимых элементов. Однако, если элемент находится внутри элемента <label>, который имеет ассоциированный control, возвращает значение этого элемента управления.

Использование

frame.input_value(selector)
frame.input_value(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


is_checked

Added before v1.9 frame.is_checked
Discouraged

Use locator-based locator.is_checked() instead. Read more about locators.

Возвращает, отмечен ли элемент. Вызывает ошибку, если элемент не является флажком или радиокнопкой.

Использование

frame.is_checked(selector)
frame.is_checked(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


is_disabled

Added before v1.9 frame.is_disabled
Discouraged

Use locator-based locator.is_disabled() instead. Read more about locators.

Возвращает, отключен ли элемент, противоположность enabled.

Использование

frame.is_disabled(selector)
frame.is_disabled(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


is_editable

Added before v1.9 frame.is_editable
Discouraged

Use locator-based locator.is_editable() instead. Read more about locators.

Возвращает, является ли элемент editable.

Использование

frame.is_editable(selector)
frame.is_editable(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


is_hidden

Added before v1.9 frame.is_hidden
Discouraged

Use locator-based locator.is_hidden() instead. Read more about locators.

Возвращает, скрыт ли элемент, противоположность visible. selector, который не соответствует ни одному элементу, считается скрытым.

Использование

frame.is_hidden(selector)
frame.is_hidden(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Deprecated

    Эта опция игнорируется. frame.is_hidden() не ждет, пока элемент станет скрытым, и возвращается немедленно.

Возвращает


is_visible

Added before v1.9 frame.is_visible
Discouraged

Use locator-based locator.is_visible() instead. Read more about locators.

Возвращает, является ли элемент visible. selector, который не соответствует ни одному элементу, считается невидимым.

Использование

frame.is_visible(selector)
frame.is_visible(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Deprecated

    Эта опция игнорируется. frame.is_visible() не ждет, пока элемент станет видимым, и возвращается немедленно.

Возвращает


press

Added before v1.9 frame.press
Discouraged

Use locator-based locator.press() instead. Read more about locators.

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 разрешается в Control на Windows и Linux и в Meta на macOS.

Удержание Shift будет вводить текст, соответствующий key в верхнем регистре.

Если key является одним символом, он чувствителен к регистру, поэтому значения a и A будут генерировать разные соответствующие тексты.

Также поддерживаются сочетания клавиш, такие как key: "Control+o", key: "Control++ или key: "Control+Shift+T". При указании с модификатором, модификатор нажимается и удерживается, пока не будет нажата последующая клавиша.

Использование

frame.press(selector, key)
frame.press(selector, key, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • key str#

    Имя клавиши для нажатия или символ для генерации, например, ArrowLeft или a.

  • delay float (optional)#

    Время ожидания между keydown и keyup в миллисекундах. По умолчанию 0.

  • no_wait_after bool (optional)#

    Deprecated

    Эта опция по умолчанию будет true в будущем.

    Действия, инициирующие навигацию, ожидают, пока эти навигации не произойдут и страницы не начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится эта опция только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию false.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


query_selector

Added in: v1.9 frame.query_selector
Discouraged

Use locator-based frame.locator() instead. Read more about locators.

Возвращает ElementHandle, указывающий на элемент фрейма.

предупреждение

Использование ElementHandle не рекомендуется, вместо этого используйте объекты Locator и утверждения, ориентированные на веб.

Метод находит элемент, соответствующий указанному селектору в фрейме. Если ни один элемент не соответствует селектору, возвращает null.

Использование

frame.query_selector(selector)
frame.query_selector(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

Возвращает


query_selector_all

Added in: v1.9 frame.query_selector_all
Discouraged

Use locator-based frame.locator() instead. Read more about locators.

Возвращает ElementHandles, указывающие на элементы фрейма.

предупреждение

Использование ElementHandle не рекомендуется, вместо этого используйте объекты Locator.

Метод находит все элементы, соответствующие указанному селектору в фрейме. Если ни один элемент не соответствует селектору, возвращает пустой массив.

Использование

frame.query_selector_all(selector)

Аргументы

  • selector str#

    Селектор для поиска.

Возвращает


select_option

Added before v1.9 frame.select_option
Discouraged

Use locator-based locator.select_option() instead. Read more about locators.

Этот метод ожидает элемент, соответствующий selector, ожидает проверки actionability, ожидает, пока все указанные опции не будут присутствовать в элементе <select>, и выбирает эти опции.

Если целевой элемент не является элементом <select>, этот метод вызывает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет связанный control, будет использован контроль.

Возвращает массив значений опций, которые были успешно выбраны.

Вызывает событие change и input, как только все предоставленные опции были выбраны.

Использование

# 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"])

Аргументы

  • selector str#

    Селектор для поиска.

  • force bool (optional) Added in: v1.13#

    Нужно ли обходить проверки actionability. По умолчанию false.

  • no_wait_after bool (optional)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

  • element ElementHandle | List[ElementHandle] (optional)#

    Элементы опций для выбора. Необязательно.

  • index int | List[int] (optional)#

    Опции для выбора по индексу. Необязательно.

  • value str | List[str] (optional)#

    Опции для выбора по значению. Если <select> имеет атрибут multiple, все указанные опции выбираются, в противном случае выбирается только первая опция, соответствующая одной из переданных опций. Необязательно.

  • label str | List[str] (optional)#

    Опции для выбора по метке. Если <select> имеет атрибут multiple, все указанные опции выбираются, в противном случае выбирается только первая опция, соответствующая одной из переданных опций. Необязательно.

Возвращает


set_checked

Added in: v1.15 frame.set_checked
Discouraged

Use locator-based locator.set_checked() instead. Read more about locators.

Этот метод отмечает или снимает отметку с элемента, соответствующего selector, выполняя следующие шаги:

  1. Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
  2. Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод вызывает ошибку.
  3. Если элемент уже имеет правильное состояние, этот метод возвращается немедленно.
  4. Подождите проверки actionability на найденном элементе, если не установлен параметр force. Если элемент отсоединяется во время проверок, все действие повторяется.
  5. Прокрутите элемент в вид, если это необходимо.
  6. Используйте page.mouse для нажатия в центре элемента.
  7. Убедитесь, что элемент теперь отмечен или не отмечен. Если нет, этот метод вызывает ошибку.

Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.

Использование

frame.set_checked(selector, checked)
frame.set_checked(selector, checked, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.

  • checked bool#

    Нужно ли отметить или снять отметку с флажка.

  • force bool (optional)#

    Нужно ли обходить проверки actionability. По умолчанию false.

  • no_wait_after bool (optional)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • position Dict (optional)#

    Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.

  • strict bool (optional)#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

  • trial bool (optional)#

    Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.

Возвращает


set_input_files

Added before v1.9 frame.set_input_files
Discouraged

Use locator-based locator.set_input_files() instead. Read more about locators.

Устанавливает значение файлового ввода в эти пути файлов или файлы. Если некоторые из filePaths являются относительными путями, они разрешаются относительно текущей рабочей директории. Для пустого массива очищает выбранные файлы.

Этот метод ожидает, что selector указывает на input element. Однако, если элемент находится внутри элемента <label>, который имеет связанный control, нацелен на контроль.

Использование

frame.set_input_files(selector, files)
frame.set_input_files(selector, files, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.

  • files Union[str, pathlib.Path] | List[Union[str, pathlib.Path]] | Dict | List[Dict]#

    • name str

      Имя файла

    • mimeType str

      Тип файла

    • buffer bytes

      Содержимое файла

  • no_wait_after bool (optional)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


tap

Added before v1.9 frame.tap
Discouraged

Use locator-based locator.tap() instead. Read more about locators.

Этот метод нажимает на элемент, соответствующий selector, выполняя следующие шаги:

  1. Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
  2. Подождите проверки actionability на найденном элементе, если не установлен параметр force. Если элемент отсоединяется во время проверок, все действие повторяется.
  3. Прокрутите элемент в вид, если это необходимо.
  4. Используйте page.touchscreen для нажатия в центре элемента или в указанной position.

Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.

примечание

frame.tap() требует, чтобы параметр hasTouch контекста браузера был установлен в true.

Использование

frame.tap(selector)
frame.tap(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.

  • force bool (optional)#

    Нужно ли обходить проверки actionability. По умолчанию false.

  • modifiers List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (optional)#

    Модификаторы клавиш для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.

  • no_wait_after bool (optional)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • position Dict (optional)#

    Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

  • trial bool (optional) Added in: v1.11#

    Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурные modifiers будут нажаты независимо от trial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.

Возвращает


text_content

Added before v1.9 frame.text_content
Discouraged

Use locator-based locator.text_content() instead. Read more about locators.

Возвращает element.textContent.

Использование

frame.text_content(selector)
frame.text_content(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


type

Added before v1.9 frame.type
Deprecated

In most cases, you should use locator.fill() instead. You only need to press keys one by one if there is special keyboard handling on the page - in this case use locator.press_sequentially().

Отправляет событие keydown, keypress/input и keyup для каждого символа в тексте. frame.type может использоваться для отправки детализированных событий клавиатуры. Для заполнения значений в полях формы используйте frame.fill().

Чтобы нажать специальную клавишу, такую как Control или ArrowDown, используйте keyboard.press().

Использование

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • text str#

    Текст для ввода в фокусированный элемент.

  • delay float (optional)#

    Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.

  • no_wait_after bool (optional)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().

Возвращает


uncheck

Added before v1.9 frame.uncheck
Discouraged

Use locator-based locator.uncheck() instead. Read more about locators.

Этот метод снимает отметку с элемента, соответствующего selector, выполняя следующие шаги:

  1. Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
  2. Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод выбрасывает исключение. Если элемент уже снят с отметки, этот метод возвращается немедленно.
  3. Подождите, пока не будут выполнены проверки actionability на найденном элементе, если только не установлен параметр force. Если элемент отсоединяется во время проверок, все действие повторяется.
  4. Прокрутите элемент в видимую область, если это необходимо.
  5. Используйте page.mouse, чтобы щелкнуть в центре элемента.
  6. Убедитесь, что элемент теперь снят с отметки. Если нет, этот метод выбрасывает исключение.

Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.

Использование

frame.uncheck(selector)
frame.uncheck(selector, **kwargs)

Аргументы

  • selector str#

    Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.

  • force bool (optional)#

    Следует ли обходить проверки actionability. По умолчанию false.

  • no_wait_after bool (optional)#

    Deprecated

    Этот параметр не имеет эффекта.

    Этот параметр не имеет эффекта.

  • position Dict (optional) Added in: v1.11#

    Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods.

  • trial bool (optional) Added in: v1.11#

    Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.

Возвращает


wait_for_selector

Added before v1.9 frame.wait_for_selector
Discouraged

Use web assertions that assert visibility or a locator-based locator.wait_for() instead. Read more about locators.

Возвращает, когда элемент, указанный селектором, удовлетворяет параметру state. Возвращает null, если ожидание для hidden или detached.

примечание

Playwright автоматически ожидает, пока элемент будет готов перед выполнением действия. Использование объектов Locator и веб-первых утверждений делает код свободным от ожидания селектора.

Ожидайте, пока selector удовлетворит параметру state (либо появится/исчезнет из DOM, либо станет видимым/скрытым). Если на момент вызова метода selector уже удовлетворяет условию, метод вернется немедленно. Если селектор не удовлетворяет условию в течение timeout миллисекунд, функция выбросит исключение.

Использование

Этот метод работает через навигации:

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)

Аргументы

  • selector str#

    Селектор для запроса.

  • state "attached" | "detached" | "visible" | "hidden" (optional)#

    По умолчанию 'visible'. Может быть:

    • 'attached' - ожидание, пока элемент будет присутствовать в DOM.
    • 'detached' - ожидание, пока элемент не будет присутствовать в DOM.
    • 'visible' - ожидание, пока элемент не будет иметь пустую рамку и visibility:hidden. Обратите внимание, что элемент без содержимого или с display:none имеет пустую рамку и не считается видимым.
    • 'hidden' - ожидание, пока элемент не будет отсоединен от DOM, или не будет иметь пустую рамку или visibility:hidden. Это противоположно опции 'visible'.
  • strict bool (optional) Added in: v1.14#

    Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.

  • timeout float (optional)#

    Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods.

Возвращает


wait_for_timeout

Added before v1.9 frame.wait_for_timeout
Discouraged

Never wait for timeout in production. Tests that wait for time are inherently flaky. Use Locator actions and web assertions that wait automatically.

Ожидает заданный timeout в миллисекундах.

Обратите внимание, что frame.waitForTimeout() следует использовать только для отладки. Тесты, использующие таймер в производственной среде, будут ненадежными. Используйте сигналы, такие как сетевые события, селекторы, становящиеся видимыми, и другие.

Использование

frame.wait_for_timeout(timeout)

Аргументы

  • timeout float#

    Тайм-аут для ожидания

Возвращает