ElementHandle
- extends: JSHandle
ElementHandle представляет собой элемент DOM на странице. ElementHandles могут быть созданы с помощью метода page.query_selector().
Использование ElementHandle не рекомендуется, вместо этого используйте объекты Locator и утверждения, ориентированные на веб.
- Sync
- Async
href_element = page.query_selector("a")
href_element.click()
href_element = await page.query_selector("a")
await 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 элемент. Это может привести к неожиданным поведениям.
- Sync
- Async
handle = page.query_selector("text=Submit")
handle.hover()
handle.click()
handle = await page.query_selector("text=Submit")
await handle.hover()
await handle.click()
С локатором, каждый раз, когда используется element
, актуальный DOM элемент находится на странице с использованием селектора. Таким образом, в приведенном ниже фрагменте, базовый DOM элемент будет найден дважды.
- Sync
- Async
locator = page.get_by_text("Submit")
locator.hover()
locator.click()
locator = page.get_by_text("Submit")
await locator.hover()
await locator.click()
Методы
bounding_box
Добавлено до v1.9Этот метод возвращает ограничивающий прямоугольник элемента или null
, если элемент не виден. Ограничивающий прямоугольник рассчитывается относительно области просмотра основного фрейма - обычно это то же самое, что и окно браузера.
Прокрутка влияет на возвращаемый ограничивающий прямоугольник, аналогично Element.getBoundingClientRect. Это означает, что x
и/или y
могут быть отрицательными.
Элементы из дочерних фреймов возвращают ограничивающий прямоугольник относительно основного фрейма, в отличие от Element.getBoundingClientRect.
Предполагая, что страница статична, безопасно использовать координаты ограничивающего прямоугольника для выполнения ввода. Например, следующий фрагмент должен кликнуть в центр элемента.
Использование
- Sync
- Async
box = element_handle.bounding_box()
page.mouse.click(box["x"] + box["width"] / 2, box["y"] + box["height"] / 2)
box = await element_handle.bounding_box()
await page.mouse.click(box["x"] + box["width"] / 2, box["y"] + box["height"] / 2)
Возвращает
content_frame
Добавлено до v1.9Возвращает фрейм содержимого для дескрипторов элементов, ссылающихся на узлы iframe, или null
в противном случае.
Использование
element_handle.content_frame()
Возвращает
owner_frame
Добавлено до v1.9Возвращает фрейм, содержащий данный элемент.
Использование
element_handle.owner_frame()
Возвращает
wait_for_element_state
Добавлено до v1.9Возвращает, когда элемент удовлетворяет 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"#Состояние, которое нужно ожидать, см. ниже для более подробной информации.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().
Возвращает
Deprecated
check
Добавлено до v1.9Используйте основанный на локаторе locator.check() вместо этого. Подробнее о локаторах.
Этот метод проверяет элемент, выполняя следующие шаги:
- Убедитесь, что элемент является флажком или радиокнопкой. Если нет, этот метод выбрасывает исключение. Если элемент уже отмечен, этот метод возвращается немедленно.
- Ожидание проверок actionability на элементе, если только не установлен параметр force.
- Прокрутите элемент в вид, если это необходимо.
- Используйте page.mouse для клика в центр элемента.
- Убедитесь, что элемент теперь отмечен. Если нет, этот метод выбрасывает исключение.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод выбрасывает исключение.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.
Использование
element_handle.check()
element_handle.check(**kwargs)
Аргументы
-
Нужно ли обходить проверки actionability. По умолчанию
false
. -
no_wait_after
bool (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
position
Dict (опционально) Добавлено в: v1.11#Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется некоторая видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout(). -
trial
bool (опционально) Добавлено в: v1.11#Когда установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
Возвращает
click
Добавлено до v1.9Use locator-based locator.click() instead. Read more about locators.
Этот метод выполняет клик по элементу, выполняя следующие шаги:
- Ожидание проверки actionability на элементе, если не установлен параметр force.
- Прокрутка элемента в видимую область, если это необходимо.
- Использование page.mouse для клика в центр элемента или в указанную position.
- Ожидание завершения или неудачи инициированных навигаций, если не установлен параметр no_wait_after.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод вызывает ошибку.
Если все шаги не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Установка нулевого таймаута отключает это.
Использование
element_handle.click()
element_handle.click(**kwargs)
Аргументы
-
button
"left" | "right" | "middle" (опционально)#По умолчанию
left
. -
click_count
int (опционально)#По умолчанию 1. См. UIEvent.detail.
-
Время ожидания между
mousedown
иmouseup
в миллисекундах. По умолчанию 0. -
Пропускать ли проверки actionability. По умолчанию
false
. -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (опционально)#Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается как "Control" на Windows и Linux и как "Meta" на macOS.
-
no_wait_after
bool (опционально)#DeprecatedЭтот параметр по умолчанию будет
true
в будущем.Действия, инициирующие навигации, ожидают, пока эти навигации произойдут и страницы начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Этот параметр нужен только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию
false
. -
Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Установите0
, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout(). -
trial
bool (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
Возвращает
dblclick
Добавлено до v1.9Use locator-based locator.dblclick() instead. Read more about locators.
Этот метод выполняет двойной клик по элементу, выполняя следующие шаги:
- Ожидание проверки actionability на элементе, если не установлен параметр force.
- Прокрутка элемента в видимую область, если это необходимо.
- Использование page.mouse для двойного клика в центр элемента или в указанную position.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод вызывает ошибку.
Если все шаги не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Установка нулевого таймаута отключает это.
elementHandle.dblclick()
генерирует два события click
и одно событие dblclick
.
Использование
element_handle.dblclick()
element_handle.dblclick(**kwargs)
Аргументы
-
button
"left" | "right" | "middle" (опционально)#По умолчанию
left
. -
Время ожидания между
mousedown
иmouseup
в миллисекундах. По умолчанию 0. -
Пропускать ли проверки actionability. По умолчанию
false
. -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (опционально)#Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается как "Control" на Windows и Linux и как "Meta" на macOS.
-
no_wait_after
bool (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Установите0
, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout(). -
trial
bool (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
Возвращает
dispatch_event
Добавлено до v1.9Use locator-based locator.dispatch_event() instead. Read more about locators.
Пример ниже генерирует событие click
на элементе. Независимо от состояния видимости элемента, click
генерируется. Это эквивалентно вызову element.click().
Использование
- Sync
- Async
element_handle.dispatch_event("click")
await element_handle.dispatch_event("click")
Внутри создается экземпляр события на основе указанного type, инициализируется с помощью свойств event_init и генерируется на элементе. События по умолчанию composed
, cancelable
и всплывают.
Поскольку event_init специфичен для события, пожалуйста, обратитесь к документации по событиям для списков начальных свойств:
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
Вы также можете указать JSHandle
в качестве значения свойства, если хотите, чтобы живые объекты передавались в событие:
- Sync
- Async
# обратите внимание, что вы можете создать data_transfer только в chromium и firefox
data_transfer = page.evaluate_handle("new DataTransfer()")
element_handle.dispatch_event("#source", "dragstart", {"dataTransfer": data_transfer})
# обратите внимание, что вы можете создать data_transfer только в chromium и firefox
data_transfer = await page.evaluate_handle("new DataTransfer()")
await element_handle.dispatch_event("#source", "dragstart", {"dataTransfer": data_transfer})
Аргументы
-
Тип DOM события:
"click"
,"dragstart"
, и т.д. -
event_init
EvaluationArgument (опционально)#Необязательные свойства инициализации, специфичные для события.
Возвращает
eval_on_selector
Добавлено в: v1.9This 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() будет ожидать разрешения промиса и вернет его значение.
Использование
- Sync
- Async
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"
tweet_handle = await page.query_selector(".tweet")
assert await tweet_handle.eval_on_selector(".like", "node => node.innerText") == "100"
assert await tweet_handle.eval_on_selector(".retweets", "node => node.innerText") == "10"
Аргументы
-
Селектор для поиска.
-
JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
arg
EvaluationArgument (опционально)#Необязательный аргумент для передачи в expression.
Возвращает
eval_on_selector_all
Добавлено в: v1.9In 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>
- Sync
- Async
feed_handle = page.query_selector(".feed")
assert feed_handle.eval_on_selector_all(".tweet", "nodes => nodes.map(n => n.innerText)") == ["hello!", "hi!"]
feed_handle = await page.query_selector(".feed")
assert await feed_handle.eval_on_selector_all(".tweet", "nodes => nodes.map(n => n.innerText)") == ["hello!", "hi!"]
Аргументы
-
Селектор для запроса.
-
JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
arg
EvaluationArgument (опционально)#Необязательный аргумент для передачи в expression.
Возвращает
fill
Добавлено до v1.9Use 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)
Аргументы
-
Значение для установки в элемент
<input>
,<textarea>
или[contenteditable]
. -
force
bool (опционально) Добавлено в: v1.13#Следует ли обходить проверки actionability. По умолчанию
false
. -
no_wait_after
bool (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().
Возвращает
focus
Добавлено до v1.9Use locator-based locator.focus() instead. Read more about locators.
Вызывает focus на элементе.
Использование
element_handle.focus()
Возвращает
get_attribute
Добавлено до v1.9Use locator-based locator.get_attribute() instead. Read more about locators.
Возвращает значение атрибута элемента.
Использование
element_handle.get_attribute(name)
Аргументы
Возвращает
hover
Добавлено до v1.9Use locator-based locator.hover() instead. Read more about locators.
Этот метод наводит курсор на элемент, выполняя следующие шаги:
- Ожидание проверок actionability на элементе, если не установлен параметр force.
- Прокрутка элемента в видимую область, если необходимо.
- Использование page.mouse для наведения курсора на центр элемента или указанную position.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод вызывает ошибку.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.
Использование
element_handle.hover()
element_handle.hover(**kwargs)
Аргументы
-
Следует ли обходить проверки actionability. По умолчанию
false
. -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (опционально)#Модификаторные клавиши для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается как "Control" на Windows и Linux и как "Meta" на macOS.
-
no_wait_after
bool (опционально) Добавлено в: v1.28#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout(). -
trial
bool (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
Возвращает
inner_html
Добавлено до v1.9Use locator-based locator.inner_html() instead. Read more about locators.
Возвращает element.innerHTML
.
Использование
element_handle.inner_html()
Возвращает
inner_text
Добавлено до v1.9Use locator-based locator.inner_text() instead. Read more about locators.
Возвращает element.innerText
.
Использование
element_handle.inner_text()
Возвращает
input_value
Добавлено в: v1.13Use 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)
Аргументы
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().
Возвращает
is_checked
Добавлено до v1.9Use locator-based locator.is_checked() instead. Read more about locators.
Возвращает, установлен ли флажок элемента. Вызывает ошибку, если элемент не является флажком или радиокнопкой.
Использование
element_handle.is_checked()
Возвращает
is_disabled
Добавлено до v1.9Use locator-based locator.is_disabled() instead. Read more about locators.
Возвращает, отключен ли элемент, противоположность enabled.
Использование
element_handle.is_disabled()
Возвращает
is_editable
Добавлено до v1.9Use locator-based locator.is_editable() instead. Read more about locators.
Возвращает, является ли элемент editable.
Использование
element_handle.is_editable()
Возвращает
is_enabled
Добавлено до v1.9Use locator-based locator.is_enabled() instead. Read more about locators.
Возвращает, является ли элемент enabled.
Использование
element_handle.is_enabled()
Возвращает
is_hidden
Добавлено до v1.9Use locator-based locator.is_hidden() instead. Read more about locators.
Возвращает, скрыт ли элемент, противоположность visible.
Использование
element_handle.is_hidden()
Возвращает
is_visible
Добавлено до v1.9Use locator-based locator.is_visible() instead. Read more about locators.
Возвращает, является ли элемент visible.
Использование
element_handle.is_visible()
Возвращает
press
Добавлено до v1.9Use 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)
Аргументы
-
Имя клавиши для нажатия или символ для генерации, например,
ArrowLeft
илиa
. -
Время ожидания между
keydown
иkeyup
в миллисекундах. По умолчанию 0. -
no_wait_after
bool (опционально)#DeprecatedThis option will default to
true
in the future.Действия, инициирующие навигацию, ожидают, пока эти навигации произойдут и страницы начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится эта опция только в исключительных случаях, таких как навигация к недоступным страницам. По умолчанию
false
. -
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Установите0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().
Возвращает
query_selector
Добавлено в: v1.9Use locator-based page.locator() instead. Read more about locators.
Метод находит элемент, соответствующий указанному селектору в поддереве ElementHandle
. Если ни один элемент не соответствует селектору, возвращает null
.
Использование
element_handle.query_selector(selector)
Аргументы
Возвращает
query_selector_all
Добавлено в: v1.9Use locator-based page.locator() instead. Read more about locators.
Метод находит все элементы, соответствующие указанному селектору в поддереве ElementHandle
. Если ни один элемент не соответствует селектору, возвращает пустой массив.
Использование
element_handle.query_selector_all(selector)
Аргументы
Возвращает
screenshot
Добавлено до v1.9Use 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 является относительным путем, то он разрешается относительно текущей рабочей директории. Если путь не указан, изображение не будет сохранено на диск.
-
Качество изображения, от 0 до 100. Не применимо к изображениям
png
. -
scale
"css" | "device" (опционально)#При установке в
"css"
, снимок экрана будет иметь один пиксель на каждый css пиксель на странице. Для устройств с высоким разрешением это позволит сохранить снимки экрана небольшими. Использование опции"device"
создаст один пиксель на каждый пиксель устройства, так что снимки экрана устройств с высоким разрешением будут в два раза больше или даже больше.По умолчанию
"device"
. -
style
str (опционально) Добавлено в: v1.41#Текст таблицы стилей для применения при создании снимка экрана. Здесь вы можете скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы помочь вам создавать повторяемые снимки экрана. Эта таблица стилей проникает в Shadow DOM и применяется к внутренним фреймам.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Установите0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout(). -
type
"png" | "jpeg" (опционально)#Укажите тип снимка экрана, по умолчанию
png
.
Возвращает
scroll_into_view_if_needed
Добавлено до v1.9Use 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)
Аргументы
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().
Возвращает
select_option
Добавлено до v1.9Use locator-based locator.select_option() instead. Read more about locators.
Этот метод ожидает проверки actionability, ждет, пока все указанные опции не будут присутствовать в элементе <select>
, и выбирает эти опции.
Если целевой элемент не является элементом <select>
, этот метод вызывает ошибку. Однако, если элемент находится внутри элемента <label>
, который имеет ассоциированный control, будет использован этот control.
Возвращает массив значений опций, которые были успешно выбраны.
Вызывает события change
и input
, как только все предоставленные опции были выбраны.
Использование
- Sync
- Async
# 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"])
# Single selection matching the value or label
await handle.select_option("blue")
# single selection matching the label
await handle.select_option(label="blue")
# multiple selection
await handle.select_option(value=["red", "green", "blue"])
Аргументы
-
force
bool (опционально) Добавлено в: v1.13#Нужно ли обходить проверки actionability. По умолчанию
false
. -
no_wait_after
bool (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
Максимальное время в миллисекундах. По умолчанию
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.9Use 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
. -
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods.
Возвращает
set_checked
Добавлено в: v1.15Use locator-based locator.set_checked() instead. Read more about locators.
Этот метод отмечает или снимает отметку с элемента, выполняя следующие шаги:
- Убедитесь, что элемент является флажком или радиокнопкой. Если нет, этот метод вызывает ошибку.
- Если элемент уже имеет правильное состояние, этот метод возвращается немедленно.
- Ожидайте проверки actionability на совпадающем элементе, если не установлен параметр force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте page.mouse для нажатия в центре элемента.
- Убедитесь, что элемент теперь отмечен или не отмечен. Если нет, этот метод вызывает ошибку.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.
Использование
element_handle.set_checked(checked)
element_handle.set_checked(checked, **kwargs)
Аргументы
-
Нужно ли отметить или снять отметку с флажка.
-
Нужно ли обходить проверки actionability. По умолчанию
false
. -
no_wait_after
bool (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods. -
Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
Возвращает
set_input_files
Добавлено до v1.9Use 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]# -
no_wait_after
bool (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods.
Возвращает
tap
Добавлено до v1.9Use locator-based locator.tap() instead. Read more about locators.
Этот метод нажимает на элемент, выполняя следующие шаги:
- Ожидайте проверки actionability на элементе, если не установлен параметр force.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте page.touchscreen для нажатия в центре элемента или указанной position.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод вызывает ошибку.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.
elementHandle.tap()
требует, чтобы параметр hasTouch
контекста браузера был установлен в true.
Использование
element_handle.tap()
element_handle.tap(**kwargs)
Аргументы
-
Нужно ли обходить проверки actionability. По умолчанию
false
. -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (опционально)#Модификаторы клавиш для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается как "Control" на Windows и Linux и как "Meta" на macOS.
-
no_wait_after
bool (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout() methods. -
trial
bool (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
Возвращает
text_content
Добавлено до v1.9Use locator-based locator.text_content() instead. Read more about locators.
Возвращает node.textContent
.
Использование
element_handle.text_content()
Возвращает
type
Добавлено до v1.9In 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().
Использование
Аргументы
-
Текст для ввода в сфокусированный элемент.
-
Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.
-
no_wait_after
bool (опционально)#DeprecatedThis option has no effect.
Этот параметр не имеет эффекта.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().
Возвращает
uncheck
Добавлено до v1.9Use locator-based locator.uncheck() instead. Read more about locators.
Этот метод снимает отметку с элемента, выполняя следующие шаги:
- Убедитесь, что элемент является флажком или радиокнопкой. Если нет, этот метод вызывает ошибку. Если элемент уже снят с отметки, этот метод возвращается немедленно.
- Ожидайте actionability проверки на элементе, если только не установлен параметр force.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте page.mouse для клика в центр элемента.
- Убедитесь, что элемент теперь снят с отметки. Если нет, этот метод вызывает ошибку.
Если элемент отсоединен от DOM в любой момент во время действия, этот метод вызывает ошибку.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.
Использование
element_handle.uncheck()
element_handle.uncheck(**kwargs)
Аргументы
-
Следует ли обходить actionability проверки. По умолчанию
false
. -
no_wait_after
bool (опционально)#DeprecatedThis option has no effect.
Этот параметр не имеет эффекта.
-
position
Dict (опционально) Добавлено в: v1.11#Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout(). -
trial
bool (опционально) Добавлено в: v1.11#Когда установлено, этот метод выполняет только actionability проверки и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент не будет готов к действию без его выполнения.
Возвращает
wait_for_selector
Добавлено до v1.9Use web assertions that assert visibility or a locator-based locator.wait_for() instead.
Возвращает элемент, указанный селектором, когда он удовлетворяет параметру state. Возвращает null
, если ожидание для hidden
или detached
.
Ожидает, пока selector относительно элемента удовлетворит параметру state (либо появится/исчезнет из DOM, либо станет видимым/скрытым). Если в момент вызова метода selector уже удовлетворяет условию, метод вернется немедленно. Если селектор не удовлетворяет условию в течение timeout миллисекунд, функция вызовет ошибку.
Использование
- Sync
- Async
page.set_content("<div><span></span></div>")
div = page.query_selector("div")
# ожидание селектора "span" относительно div.
span = div.wait_for_selector("span", state="attached")
await page.set_content("<div><span></span></div>")
div = await page.query_selector("div")
# ожидание селектора "span" относительно div.
span = await div.wait_for_selector("span", state="attached")
Этот метод не работает через навигации, используйте page.wait_for_selector() вместо этого.
Аргументы
-
Селектор для запроса.
-
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, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы browser_context.set_default_timeout() или page.set_default_timeout().
Возвращает