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

ElementHandle

ElementHandle представляет собой элемент DOM на странице. ElementHandles могут быть созданы с помощью метода page.query_selector().

Discouraged

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

href_element = page.query_selector("a")
href_element.click()

ElementHandle предотвращает сборку мусора для DOM элемента, если только дескриптор не будет удален с помощью js_handle.dispose(). ElementHandles автоматически удаляются, когда их исходный фрейм переходит на другую страницу.

Экземпляры ElementHandle могут использоваться в качестве аргумента в методах page.eval_on_selector() и page.evaluate().

Разница между Locator и ElementHandle заключается в том, что ElementHandle указывает на конкретный элемент, в то время как Locator захватывает логику того, как получить элемент.

В примере ниже handle указывает на конкретный DOM элемент на странице. Если этот элемент изменяет текст или используется React для рендеринга совершенно другого компонента, handle все равно указывает на этот самый DOM элемент. Это может привести к неожиданным поведениям.

handle = page.query_selector("text=Submit")
handle.hover()
handle.click()

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

locator = page.get_by_text("Submit")
locator.hover()
locator.click()

Методы

bounding_box

Добавлено до v1.9 elementHandle.bounding_box

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

Прокрутка влияет на возвращаемый ограничивающий прямоугольник, аналогично Element.getBoundingClientRect. Это означает, что x и/или y могут быть отрицательными.

Элементы из дочерних фреймов возвращают ограничивающий прямоугольник относительно основного фрейма, в отличие от Element.getBoundingClientRect.

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

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

box = element_handle.bounding_box()
page.mouse.click(box["x"] + box["width"] / 2, box["y"] + box["height"] / 2)

Возвращает

  • NoneType | Dict#
    • x float

      координата x элемента в пикселях.

    • y float

      координата y элемента в пикселях.

    • width float

      ширина элемента в пикселях.

    • height float

      высота элемента в пикселях.


content_frame

Добавлено до v1.9 elementHandle.content_frame

Возвращает фрейм содержимого для дескрипторов элементов, ссылающихся на узлы iframe, или null в противном случае.

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

element_handle.content_frame()

Возвращает


owner_frame

Добавлено до v1.9 elementHandle.owner_frame

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

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

element_handle.owner_frame()

Возвращает


wait_for_element_state

Добавлено до v1.9 elementHandle.wait_for_element_state

Возвращает, когда элемент удовлетворяет state.

В зависимости от параметра state, этот метод ожидает, пока не пройдет одна из проверок actionability. Этот метод выбрасывает исключение, когда элемент отсоединяется во время ожидания, если только не ожидается состояние "hidden".

  • "visible" Ожидание, пока элемент не станет видимым.
  • "hidden" Ожидание, пока элемент не станет невидимым или не будет отсоединен. Обратите внимание, что ожидание скрытия не выбрасывает исключение, когда элемент отсоединяется.
  • "stable" Ожидание, пока элемент не станет одновременно видимым и стабильным.
  • "enabled" Ожидание, пока элемент не станет включенным.
  • "disabled" Ожидание, пока элемент не станет не включенным.
  • "editable" Ожидание, пока элемент не станет редактируемым.

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

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

element_handle.wait_for_element_state(state)
element_handle.wait_for_element_state(state, **kwargs)

Аргументы

  • state "visible" | "hidden" | "stable" | "enabled" | "disabled" | "editable"#

    Состояние, которое нужно ожидать, см. ниже для более подробной информации.

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

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

Возвращает


Deprecated

check

Добавлено до v1.9 elementHandle.check
Discouraged

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

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

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

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

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

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

element_handle.check()
element_handle.check(**kwargs)

Аргументы

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

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

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

    Deprecated

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

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

  • position Dict (опционально) Добавлено в: v1.11#

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

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

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

  • trial bool (опционально) Добавлено в: v1.11#

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

Возвращает


click

Добавлено до v1.9 elementHandle.click
Discouraged

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

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

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

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

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

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

element_handle.click()
element_handle.click(**kwargs)

Аргументы

  • 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 (опционально)#

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

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

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

  • trial bool (опционально) Добавлено в: v1.11#

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

Возвращает


dblclick

Добавлено до v1.9 elementHandle.dblclick
Discouraged

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

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

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

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

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

примечание

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

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

element_handle.dblclick()
element_handle.dblclick(**kwargs)

Аргументы

  • 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 (опционально)#

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

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

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

  • trial bool (опционально) Добавлено в: v1.11#

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

Возвращает


dispatch_event

Добавлено до v1.9 elementHandle.dispatch_event
Discouraged

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

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

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

element_handle.dispatch_event("click")

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

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

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

# обратите внимание, что вы можете создать data_transfer только в chromium и firefox
data_transfer = page.evaluate_handle("new DataTransfer()")
element_handle.dispatch_event("#source", "dragstart", {"dataTransfer": data_transfer})

Аргументы

  • type str#

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

  • event_init EvaluationArgument (опционально)#

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

Возвращает


eval_on_selector

Добавлено в: v1.9 elementHandle.eval_on_selector
Discouraged

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

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

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

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

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

tweet_handle = page.query_selector(".tweet")
assert tweet_handle.eval_on_selector(".like", "node => node.innerText") == "100"
assert tweet_handle.eval_on_selector(".retweets", "node => node.innerText") == "10"

Аргументы

  • selector str#

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

  • expression str#

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

  • arg EvaluationArgument (опционально)#

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

Возвращает


eval_on_selector_all

Добавлено в: v1.9 elementHandle.eval_on_selector_all
Discouraged

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

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

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

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

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

<div class="feed">
<div class="tweet">Hello!</div>
<div class="tweet">Hi!</div>
</div>
feed_handle = page.query_selector(".feed")
assert feed_handle.eval_on_selector_all(".tweet", "nodes => nodes.map(n => n.innerText)") == ["hello!", "hi!"]

Аргументы

  • selector str#

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

  • expression str#

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

  • arg EvaluationArgument (опционально)#

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

Возвращает


fill

Добавлено до v1.9 elementHandle.fill
Discouraged

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

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

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

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

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

element_handle.fill(value)
element_handle.fill(value, **kwargs)

Аргументы

  • value str#

    Значение для установки в элемент <input>, <textarea> или [contenteditable].

  • force bool (опционально) Добавлено в: v1.13#

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

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

    Deprecated

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

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

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

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

Возвращает


focus

Добавлено до v1.9 elementHandle.focus
Discouraged

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

Вызывает focus на элементе.

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

element_handle.focus()

Возвращает


get_attribute

Добавлено до v1.9 elementHandle.get_attribute
Discouraged

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

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

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

element_handle.get_attribute(name)

Аргументы

  • name str#

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

Возвращает


hover

Добавлено до v1.9 elementHandle.hover
Discouraged

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

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

  1. Ожидание проверок actionability на элементе, если не установлен параметр force.
  2. Прокрутка элемента в видимую область, если необходимо.
  3. Использование page.mouse для наведения курсора на центр элемента или указанную position.

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

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

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

element_handle.hover()
element_handle.hover(**kwargs)

Аргументы

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

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

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

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

  • no_wait_after bool (опционально) Добавлено в: v1.28#

    Deprecated

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

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

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

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

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

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

  • trial bool (опционально) Добавлено в: v1.11#

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

Возвращает


inner_html

Добавлено до v1.9 elementHandle.inner_html
Discouraged

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

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

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

element_handle.inner_html()

Возвращает


inner_text

Добавлено до v1.9 elementHandle.inner_text
Discouraged

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

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

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

element_handle.inner_text()

Возвращает


input_value

Добавлено в: v1.13 elementHandle.input_value
Discouraged

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

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

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

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

element_handle.input_value()
element_handle.input_value(**kwargs)

Аргументы

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

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

Возвращает


is_checked

Добавлено до v1.9 elementHandle.is_checked
Discouraged

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

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

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

element_handle.is_checked()

Возвращает


is_disabled

Добавлено до v1.9 elementHandle.is_disabled
Discouraged

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

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

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

element_handle.is_disabled()

Возвращает


is_editable

Добавлено до v1.9 elementHandle.is_editable
Discouraged

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

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

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

element_handle.is_editable()

Возвращает


is_enabled

Добавлено до v1.9 elementHandle.is_enabled
Discouraged

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

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

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

element_handle.is_enabled()

Возвращает


is_hidden

Добавлено до v1.9 elementHandle.is_hidden
Discouraged

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

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

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

element_handle.is_hidden()

Возвращает


is_visible

Добавлено до v1.9 elementHandle.is_visible
Discouraged

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

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

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

element_handle.is_visible()

Возвращает


press

Добавлено до v1.9 elementHandle.press
Discouraged

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

Фокусирует элемент, а затем использует keyboard.down() и keyboard.up().

key может указать предполагаемое значение keyboardEvent.key или один символ для генерации текста. Расширенный набор значений key можно найти здесь. Примеры клавиш:

F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp и т.д.

Также поддерживаются следующие модификации: Shift, Control, Alt, Meta, ShiftLeft, ControlOrMeta.

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

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

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

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

element_handle.press(key)
element_handle.press(key, **kwargs)

Аргументы

  • key str#

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

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

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

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

    Deprecated

    This option will default to true in the future.

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

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

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

Возвращает


query_selector

Добавлено в: v1.9 elementHandle.query_selector
Discouraged

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

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

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

element_handle.query_selector(selector)

Аргументы

  • selector str#

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

Возвращает


query_selector_all

Добавлено в: v1.9 elementHandle.query_selector_all
Discouraged

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

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

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

element_handle.query_selector_all(selector)

Аргументы

  • selector str#

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

Возвращает


screenshot

Добавлено до v1.9 elementHandle.screenshot
Discouraged

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

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

Этот метод ожидает проверки actionability, затем прокручивает элемент в видимую область перед тем, как сделать снимок экрана. Если элемент отсоединен от DOM, метод вызывает ошибку.

Возвращает буфер с захваченным снимком экрана.

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

element_handle.screenshot()
element_handle.screenshot(**kwargs)

Аргументы

  • animations "disabled" | "allow" (опционально)#

    При установке в "disabled", останавливает CSS-анимации, CSS-переходы и веб-анимации. Анимации получают разное обращение в зависимости от их продолжительности:

    • конечные анимации быстро перематываются до завершения, так что они вызовут событие transitionend.
    • бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после снимка экрана.

    По умолчанию "allow", что оставляет анимации нетронутыми.

  • caret "hide" | "initial" (опционально)#

    При установке в "hide", снимок экрана скроет текстовый курсор. При установке в "initial", поведение текстового курсора не изменится. По умолчанию "hide".

  • mask List[Locator] (опционально)#

    Укажите локаторы, которые должны быть замаскированы при создании снимка экрана. Замаскированные элементы будут перекрыты розовым прямоугольником #FF00FF (настраивается с помощью mask_color), который полностью покрывает их ограничивающий прямоугольник. Маска также применяется к невидимым элементам, см. Matching only visible elements, чтобы отключить это.

  • mask_color str (опционально) Добавлено в: v1.35#

    Укажите цвет перекрывающего прямоугольника для замаскированных элементов в CSS color format. Цвет по умолчанию - розовый #FF00FF.

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

    Скрывает белый фон по умолчанию и позволяет делать снимки экрана с прозрачностью. Не применимо к изображениям jpeg. По умолчанию false.

  • path Union[str, pathlib.Path] (опционально)#

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

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

    Качество изображения, от 0 до 100. Не применимо к изображениям png.

  • scale "css" | "device" (опционально)#

    При установке в "css", снимок экрана будет иметь один пиксель на каждый css пиксель на странице. Для устройств с высоким разрешением это позволит сохранить снимки экрана небольшими. Использование опции "device" создаст один пиксель на каждый пиксель устройства, так что снимки экрана устройств с высоким разрешением будут в два раза больше или даже больше.

    По умолчанию "device".

  • style str (опционально) Добавлено в: v1.41#

    Текст таблицы стилей для применения при создании снимка экрана. Здесь вы можете скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы помочь вам создавать повторяемые снимки экрана. Эта таблица стилей проникает в Shadow DOM и применяется к внутренним фреймам.

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

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

  • type "png" | "jpeg" (опционально)#

    Укажите тип снимка экрана, по умолчанию png.

Возвращает


scroll_into_view_if_needed

Добавлено до v1.9 elementHandle.scroll_into_view_if_needed
Discouraged

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

Этот метод ожидает проверки actionability, затем пытается прокрутить элемент в видимую область, если он не полностью виден, как это определено ratio IntersectionObserver.

Вызывает ошибку, если elementHandle не указывает на элемент, подключенный к Document или ShadowRoot.

Смотрите scrolling для альтернативных способов прокрутки.

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

element_handle.scroll_into_view_if_needed()
element_handle.scroll_into_view_if_needed(**kwargs)

Аргументы

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

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

Возвращает


select_option

Добавлено до v1.9 elementHandle.select_option
Discouraged

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

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

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

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

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

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

# Single selection matching the value or label
handle.select_option("blue")
# single selection matching both the label
handle.select_option(label="blue")
# multiple selection
handle.select_option(value=["red", "green", "blue"])

Аргументы

  • force bool (опционально) Добавлено в: v1.13#

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

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

    Deprecated

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

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

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

    Максимальное время в миллисекундах. По умолчанию 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, все указанные опции выбираются, в противном случае выбирается только первая опция, соответствующая одной из переданных опций. Необязательно.

Возвращает


select_text

Добавлено до v1.9 elementHandle.select_text
Discouraged

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

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

Если элемент находится внутри элемента <label>, который имеет ассоциированный control, фокусируется и выделяет текст в этом control.

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

element_handle.select_text()
element_handle.select_text(**kwargs)

Аргументы

  • force bool (опционально) Добавлено в: v1.13#

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

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

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

Возвращает


set_checked

Добавлено в: v1.15 elementHandle.set_checked
Discouraged

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

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

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

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

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

element_handle.set_checked(checked)
element_handle.set_checked(checked, **kwargs)

Аргументы

  • checked bool#

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

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

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

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

    Deprecated

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

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

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

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

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

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

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

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

Возвращает


set_input_files

Добавлено до v1.9 elementHandle.set_input_files
Discouraged

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

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

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

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

element_handle.set_input_files(files)
element_handle.set_input_files(files, **kwargs)

Аргументы

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

    • name str

      Имя файла

    • mimeType str

      Тип файла

    • buffer bytes

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

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

    Deprecated

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

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

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

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

Возвращает


tap

Добавлено до v1.9 elementHandle.tap
Discouraged

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

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

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

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

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

примечание

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

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

element_handle.tap()
element_handle.tap(**kwargs)

Аргументы

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

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

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

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

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

    Deprecated

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

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

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

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

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

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

  • trial bool (опционально) Добавлено в: v1.11#

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

Возвращает


text_content

Добавлено до v1.9 elementHandle.text_content
Discouraged

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

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

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

element_handle.text_content()

Возвращает


type

Добавлено до v1.9 elementHandle.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 для каждого символа в тексте.

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

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

Аргументы

  • text str#

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

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

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

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

    Deprecated

    This option has no effect.

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

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

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

Возвращает


uncheck

Добавлено до v1.9 elementHandle.uncheck
Discouraged

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

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

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

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

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

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

element_handle.uncheck()
element_handle.uncheck(**kwargs)

Аргументы

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

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

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

    Deprecated

    This option has no effect.

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

  • position Dict (опционально) Добавлено в: v1.11#

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

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

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

  • trial bool (опционально) Добавлено в: v1.11#

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

Возвращает


wait_for_selector

Добавлено до v1.9 elementHandle.wait_for_selector
Discouraged

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

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

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

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

page.set_content("<div><span></span></div>")
div = page.query_selector("div")
# ожидание селектора "span" относительно div.
span = div.wait_for_selector("span", state="attached")
примечание

Этот метод не работает через навигации, используйте page.wait_for_selector() вместо этого.

Аргументы

  • selector str#

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

  • state "attached" | "detached" | "visible" | "hidden" (опционально)#

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

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

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

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

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

Возвращает