ElementHandle
- extends: JSHandle
ElementHandle представляет собой элемент DOM на странице. ElementHandles могут быть созданы с помощью метода page.$().
Использование ElementHandle не рекомендуется, вместо этого используйте объекты Locator и утверждения, ориентированные на веб.
const hrefElement = await page.$('a');
await hrefElement.click();
ElementHandle предотвращает сборку мусора для DOM-элемента, если только дескриптор не будет удален с помощью jsHandle.dispose(). ElementHandles автоматически удаляются, когда их исходный фрейм переходит на другую страницу.
Экземпляры ElementHandle могут использоваться в качестве аргумента в методах page.$eval() и page.evaluate().
Разница между Locator и ElementHandle заключается в том, что ElementHandle указывает на конкретный элемент, в то время как Locator захватывает логику того, как получить элемент.
В примере ниже дескриптор указывает на конкретный DOM-элемент на странице. Если этот элемент изменяет текст или используется React для рендеринга совершенно другого компонента, дескриптор все равно указывает на этот самый DOM-элемент. Это может привести к неожиданным поведением.
const handle = await page.$('text=Submit');
// ...
await handle.hover();
await handle.click();
С локатором каждый раз, когда используется element
, актуальный DOM-элемент находится на странице с использованием селектора. Таким образом, в приведенном ниже фрагменте подлежащий DOM-элемент будет найден дважды.
const locator = page.getByText('Submit');
// ...
await locator.hover();
await locator.click();
Methods
boundingBox
Added before v1.9Этот метод возвращает ограничивающий прямоугольник элемента или null
, если элемент не виден. Ограничивающий прямоугольник рассчитывается относительно области просмотра основного фрейма - которая обычно совпадает с окном браузера.
Прокрутка влияет на возвращаемый ограничивающий прямоугольник, аналогично Element.getBoundingClientRect. Это означает, что x
и/или y
могут быть отрицательными.
Элементы из дочерних фреймов возвращают ограничивающий прямоугольник относительно основного фрейма, в отличие от Element.getBoundingClientRect.
Предполагая, что страница статична, безопасно использовать координаты ограничивающего прямоугольника для выполнения ввода. Например, следующий фрагмент должен кликнуть в центр элемента.
Использование
const box = await elementHandle.boundingBox();
await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2);
Возвращает
contentFrame
Added before v1.9Возвращает фрейм содержимого для дескрипторов элементов, ссылающихся на узлы iframe, или null
в противном случае.
Использование
await elementHandle.contentFrame();
Возвращает
ownerFrame
Added before v1.9Возвращает фрейм, содержащий данный элемент.
Использование
await elementHandle.ownerFrame();
Возвращает
waitForElementState
Added before v1.9Возвращает, когда элемент удовлетворяет state.
В зависимости от параметра state, этот метод ожидает, пока не пройдет одна из проверок actionability. Этот метод выбрасывает исключение, когда элемент отсоединяется во время ожидания, если только не ожидается состояние "hidden"
.
"visible"
Ожидание, пока элемент не станет видимым."hidden"
Ожидание, пока элемент не станет невидимым или не будет отсоединен. Обратите внимание, что ожидание скрытия не выбрасывает исключение, когда элемент отсоединяется."stable"
Ожидание, пока элемент не станет одновременно видимым и стабильным."enabled"
Ожидание, пока элемент не станет включенным."disabled"
Ожидание, пока элемент не станет выключенным."editable"
Ожидание, пока элемент не станет редактируемым.
Если элемент не удовлетворяет условию в течение timeout миллисекунд, этот метод выбросит исключение.
Использование
await elementHandle.waitForElementState(state);
await elementHandle.waitForElementState(state, options);
Аргументы
-
state
"visible" | "hidden" | "stable" | "enabled" | "disabled" | "editable"#Состояние, которое нужно ожидать, см. ниже для более подробной информации.
-
options
Object (optional)-
Максимальное время в миллисекундах. По умолчанию
0
- без тайм-аута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
Deprecated
$
Added in: v1.9Используйте основанный на локаторах page.locator() вместо этого. Подробнее о локаторах.
Метод находит элемент, соответствующий указанному селектору в поддереве ElementHandle
. Если элементы, соответствующие селектору, не найдены, возвращает null
.
Использование
await elementHandle.$(selector);
Аргументы
Возвращает
$$
Added in: v1.9Используйте основанный на локаторах page.locator() вместо этого. Подробнее о локаторах.
Метод находит все элементы, соответствующие указанному селектору в поддереве ElementHandle
. Если элементы, соответствующие селектору, не найдены, возвращает пустой массив.
Использование
await elementHandle.$$(selector);
Аргументы
Возвращает
$eval
Added in: v1.9Этот метод не ожидает, пока элемент пройдет проверки на возможность действия, и поэтому может привести к нестабильным тестам. Вместо этого используйте locator.evaluate(), другие вспомогательные методы Locator или утверждения, ориентированные на веб.
Возвращает возвращаемое значение pageFunction.
Метод находит элемент, соответствующий указанному селектору в поддереве ElementHandle
, и передает его в качестве первого аргумента в pageFunction. Если ни один элемент не соответствует селектору, метод выдает ошибку.
Если pageFunction возвращает Promise, то elementHandle.$eval() будет ожидать разрешения промиса и возвращать его значение.
Использование
const tweetHandle = await page.$('.tweet');
expect(await tweetHandle.$eval('.like', node => node.innerText)).toBe('100');
expect(await tweetHandle.$eval('.retweets', node => node.innerText)).toBe('10');
Аргументы
-
Селектор для запроса.
-
pageFunction
function(Element) | string#Функция для выполнения в контексте страницы.
-
arg
EvaluationArgument (optional)#Необязательный аргумент для передачи в pageFunction.
Возвращает
$$eval
Added in: v1.9В большинстве случаев locator.evaluateAll(), другие вспомогательные методы Locator и утверждения, ориентированные на веб, выполняют работу лучше.
Возвращает возвращаемое значение pageFunction.
Метод находит все элементы, соответствующие указанному селектору в поддереве ElementHandle
, и передает массив найденных элементов в качестве первого аргумента в pageFunction.
Если pageFunction возвращает Promise, то elementHandle.$$eval() будет ожидать разрешения промиса и возвращать его значение.
Использование
<div class="feed">
<div class="tweet">Hello!</div>
<div class="tweet">Hi!</div>
</div>
const feedHandle = await page.$('.feed');
expect(await feedHandle.$$eval('.tweet', nodes =>
nodes.map(n => n.innerText))).toEqual(['Hello!', 'Hi!'],
);
Аргументы
-
Селектор для запроса.
-
pageFunction
function(Array<Element>) | string#Функция для выполнения в контексте страницы.
-
arg
EvaluationArgument (optional)#Необязательный аргумент для передачи в pageFunction.
Возвращает
check
Added before v1.9Используйте основанный на локаторах locator.check() вместо этого. Подробнее о локаторах.
Этот метод отмечает элемент, выполняя следующие шаги:
- Убедитесь, что элемент является флажком или радиокнопкой. Если нет, этот метод выдает ошибку. Если элемент уже отмечен, этот метод возвращается немедленно.
- Ожидайте проверки actionability на элементе, если не установлена опция force.
- Прокрутите элемент в вид, если это необходимо.
- Используйте page.mouse для нажатия в центре элемента.
- Убедитесь, что элемент теперь отмечен. Если нет, этот метод выдает ошибку.
Если элемент отсоединен от DOM в любой момент во время действия, этот метод выдает ошибку.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод выдает TimeoutError. Передача нулевого таймаута отключает это.
Использование
await elementHandle.check();
await elementHandle.check(options);
Аргументы
options
Object (optional)-
Следует ли обходить проверки actionability. По умолчанию
false
. -
noWaitAfter
boolean (optional)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
position
Object (optional) Added in: v1.11#Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trial
boolean (optional) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
click
Added before v1.9Используйте основанный на локаторах locator.click() вместо этого. Подробнее о локаторах.
Этот метод кликает по элементу, выполняя следующие шаги:
- Ожидайте проверки actionability на элементе, если не установлена опция force.
- Прокрутите элемент в вид, если это необходимо.
- Используйте page.mouse для нажатия в центре элемента или указанной position.
- Ожидайте, пока инициированные навигации либо завершатся успешно, либо неудачно, если не установлена опция noWaitAfter.
Если элемент отсоединен от DOM в любой момент во время действия, этот метод выдает ошибку.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод выдает TimeoutError. Передача нулевого таймаута отключает это.
Использование
await elementHandle.click();
await elementHandle.click(options);
Аргументы
options
Object (optional)-
button
"left" | "right" | "middle" (optional)#По умолчанию
left
. -
По умолчанию 1. См. UIEvent.detail.
-
Время ожидания между
mousedown
иmouseup
в миллисекундах. По умолчанию 0. -
Следует ли обходить проверки actionability. По умолчанию
false
. -
modifiers
Array<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (optional)#Модификаторные клавиши для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
noWaitAfter
boolean (optional)#DeprecatedЭтот параметр по умолчанию будет
true
в будущем.Действия, инициирующие навигации, ожидают, пока эти навигации произойдут и страницы начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится этот параметр только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию
false
. -
Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trial
boolean (optional) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
dblclick
Added before v1.9Используйте основанный на локаторах locator.dblclick() вместо этого. Подробнее о локаторах.
Этот метод выполняет двойной клик по элементу, выполняя следующие шаги:
- Ожидание проверки actionability на элементе, если не установлен параметр force.
- Прокрутка элемента в видимую область, если это необходимо.
- Использование page.mouse для двойного клика в центре элемента или в указанной позиции.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод выбрасывает исключение.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод выбрасывает TimeoutError. Передача нулевого таймаута отключает это.
elementHandle.dblclick()
генерирует два события click
и одно событие dblclick
.
Использование
await elementHandle.dblclick();
await elementHandle.dblclick(options);
Аргументы
options
Object (опционально)-
button
"left" | "right" | "middle" (опционально)#По умолчанию
left
. -
Время ожидания между
mousedown
иmouseup
в миллисекундах. По умолчанию 0. -
Следует ли обходить проверки actionability. По умолчанию
false
. -
modifiers
Array<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (опционально)#Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается как "Control" на Windows и Linux и как "Meta" на macOS.
-
noWaitAfter
boolean (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
position
Object (опционально)#Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trial
boolean (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
dispatchEvent
Added before v1.9Используйте основанный на локаторах locator.dispatchEvent() вместо этого. Подробнее о локаторах.
Пример ниже генерирует событие click
на элементе. Независимо от состояния видимости элемента, click
генерируется. Это эквивалентно вызову element.click().
Использование
await elementHandle.dispatchEvent('click');
Внутри создается экземпляр события на основе указанного type, инициализируется с помощью свойств eventInit и генерируется на элементе. События по умолчанию composed
, cancelable
и всплывают.
Поскольку eventInit специфичен для события, пожалуйста, обратитесь к документации по событиям для списков начальных свойств:
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
Вы также можете указать JSHandle
в качестве значения свойства, если хотите, чтобы живые объекты передавались в событие:
// Обратите внимание, что вы можете создать DataTransfer только в Chromium и Firefox
const dataTransfer = await page.evaluateHandle(() => new DataTransfer());
await elementHandle.dispatchEvent('dragstart', { dataTransfer });
Аргументы
-
Тип DOM события:
"click"
,"dragstart"
, и т.д. -
eventInit
EvaluationArgument (опционально)#Опциональные специфичные для события свойства инициализации.
Возвращает
fill
Added before v1.9Используйте основанный на локаторах locator.fill() вместо этого. Подробнее о локаторах.
Этот метод ожидает проверки actionability, фокусируется на элементе, заполняет его и генерирует событие input
после заполнения. Обратите внимание, что вы можете передать пустую строку, чтобы очистить поле ввода.
Если целевой элемент не является элементом <input>
, <textarea>
или [contenteditable]
, этот метод выбрасывает ошибку. Однако, если элемент находится внутри элемента <label>
, который имеет ассоциированный control, будет заполнен именно этот контрол.
Для отправки более детализированных событий клавиатуры используйте locator.pressSequentially().
Использование
await elementHandle.fill(value);
await elementHandle.fill(value, options);
Аргументы
-
Значение для установки в элемент
<input>
,<textarea>
или[contenteditable]
. -
options
Object (опционально)-
force
boolean (опционально) Добавлено в: v1.13#Следует ли обходить проверки actionability. По умолчанию
false
. -
noWaitAfter
boolean (опционально)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
focus
Added before v1.9Используйте основанный на локаторах locator.focus() вместо этого. Подробнее о локаторах.
Вызывает focus на элементе.
Использование
await elementHandle.focus();
Возвращает
getAttribute
Added before v1.9Use locator-based locator.getAttribute() instead. Read more about locators.
Возвращает значение атрибута элемента.
Использование
await elementHandle.getAttribute(name);
Аргументы
Возвращает
hover
Added before v1.9Use locator-based locator.hover() instead. Read more about locators.
Этот метод наводит курсор на элемент, выполняя следующие шаги:
- Ожидание проверки actionability на элементе, если не установлена опция force.
- Прокрутка элемента в видимую область, если это необходимо.
- Использование page.mouse для наведения на центр элемента или указанную position.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод выбрасывает исключение.
Если все шаги не завершены в течение указанного timeout, этот метод выбрасывает TimeoutError. Установка нулевого таймаута отключает это.
Использование
await elementHandle.hover();
await elementHandle.hover(options);
Аргументы
options
Object (optional)-
Нужно ли обходить проверки actionability. По умолчанию
false
. -
modifiers
Array<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (optional)#Модификаторы клавиш для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается как "Control" на Windows и Linux и как "Meta" на macOS.
-
noWaitAfter
boolean (optional) Added in: v1.28#DeprecatedЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trial
boolean (optional) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
innerHTML
Added before v1.9Use locator-based locator.innerHTML() instead. Read more about locators.
Возвращает element.innerHTML
.
Использование
await elementHandle.innerHTML();
Возвращает
innerText
Added before v1.9Use locator-based locator.innerText() instead. Read more about locators.
Возвращает element.innerText
.
Использование
await elementHandle.innerText();
Возвращает
inputValue
Added in: v1.13Use locator-based locator.inputValue() instead. Read more about locators.
Возвращает input.value
для выбранного элемента <input>
, <textarea>
или <select>
.
Выбрасывает исключение для не-вводных элементов. Однако, если элемент находится внутри элемента <label>
, который имеет ассоциированный control, возвращает значение этого контрола.
Использование
await elementHandle.inputValue();
await elementHandle.inputValue(options);
Аргументы
options
Object (optional)-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
isChecked
Added before v1.9Use locator-based locator.isChecked() instead. Read more about locators.
Возвращает, отмечен ли элемент. Выбрасывает исключение, если элемент не является флажком или радиокнопкой.
Использование
await elementHandle.isChecked();
Возвращает
isDisabled
Added before v1.9Use locator-based locator.isDisabled() instead. Read more about locators.
Возвращает, отключен ли элемент, противоположность enabled.
Использование
await elementHandle.isDisabled();
Возвращает
isEditable
Added before v1.9Use locator-based locator.isEditable() instead. Read more about locators.
Возвращает, является ли элемент редактируемым.
Использование
await elementHandle.isEditable();
Возвращает
isEnabled
Added before v1.9Use locator-based locator.isEnabled() instead. Read more about locators.
Возвращает, является ли элемент включенным.
Использование
await elementHandle.isEnabled();
Возвращает
isHidden
Added before v1.9Use locator-based locator.isHidden() instead. Read more about locators.
Возвращает, скрыт ли элемент, противоположность видимости.
Использование
await elementHandle.isHidden();
Возвращает
isVisible
Added before v1.9Use locator-based locator.isVisible() instead. Read more about locators.
Возвращает, является ли элемент видимым.
Использование
await elementHandle.isVisible();
Возвращает
press
Added before 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"
. При указании с модификатором, модификатор нажимается и удерживается, пока не будет нажата последующая клавиша.
Использование
await elementHandle.press(key);
await elementHandle.press(key, options);
Аргументы
-
Название клавиши для нажатия или символ для генерации, например,
ArrowLeft
илиa
. -
options
Object (optional)-
Время ожидания между
keydown
иkeyup
в миллисекундах. По умолчанию 0. -
noWaitAfter
boolean (optional)#DeprecatedЭтот параметр по умолчанию будет
true
в будущем.Действия, инициирующие навигацию, ожидают, пока эти навигации произойдут и страницы начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится этот параметр только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию
false
. -
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
screenshot
Added before v1.9Use locator-based locator.screenshot() instead. Read more about locators.
Этот метод делает скриншот страницы, обрезанный до размера и положения этого конкретного элемента. Если элемент перекрыт другими элементами, он не будет фактически виден на скриншоте. Если элемент является прокручиваемым контейнером, на скриншоте будет виден только текущий прокручиваемый контент.
Этот метод ожидает проверки actionability, затем прокручивает элемент в видимую область перед тем, как сделать скриншот. Если элемент отсоединен от DOM, метод выдает ошибку.
Возвращает буфер с захваченным скриншотом.
Использование
await elementHandle.screenshot();
await elementHandle.screenshot(options);
Аргументы
options
Object (optional)-
animations
"disabled" | "allow" (optional)#При установке в
"disabled"
, останавливает CSS-анимации, CSS-переходы и веб-анимации. Анимации получают разное обращение в зависимости от их продолжительности:- конечные анимации быстро перематываются до завершения, так что они вызовут событие
transitionend
. - бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после скриншота.
По умолчанию
"allow"
, что оставляет анимации нетронутыми. - конечные анимации быстро перематываются до завершения, так что они вызовут событие
-
caret
"hide" | "initial" (optional)#При установке в
"hide"
, скриншот скроет текстовый курсор. При установке в"initial"
, поведение текстового курсора не будет изменено. По умолчанию"hide"
. -
mask
Array<Locator> (optional)#Укажите локаторы, которые должны быть замаскированы при создании скриншота. Замаскированные элементы будут покрыты розовым прямоугольником
#FF00FF
(настраивается с помощью maskColor), который полностью покрывает их ограничивающий прямоугольник. Маска также применяется к невидимым элементам, см. Matching only visible elements для отключения этого. -
maskColor
string (optional) Added in: v1.35#Укажите цвет наложения для замаскированных элементов в CSS-формате цвета. Цвет по умолчанию - розовый
#FF00FF
. -
omitBackground
boolean (optional)#Скрывает белый фон по умолчанию и позволяет делать скриншоты с прозрачностью. Не применимо к изображениям
jpeg
. По умолчаниюfalse
. -
Путь к файлу для сохранения изображения. Тип скриншота будет определен по расширению файла. Если path является относительным путем, то он разрешается относительно текущей рабочей директории. Если путь не указан, изображение не будет сохранено на диск.
-
Качество изображения, от 0 до 100. Не применимо к изображениям
png
. -
scale
"css" | "device" (optional)#При установке в
"css"
, скриншот будет иметь один пиксель на каждый css-пиксель на странице. Для устройств с высоким разрешением это позволит уменьшить размер скриншотов. Использование опции"device"
создаст один пиксель на каждый пиксель устройства, так что скриншоты устройств с высоким разрешением будут в два раза больше или даже больше.По умолчанию
"device"
. -
style
string (optional) Added in: v1.41#Текст стиля, который будет применен при создании скриншота. Здесь вы можете скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы помочь вам создавать повторяемые скриншоты. Этот стиль проникает в Shadow DOM и применяется к внутренним фреймам.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
type
"png" | "jpeg" (optional)#Укажите тип скриншота, по умолчанию
png
.
-
Возвращает
scrollIntoViewIfNeeded
Added before v1.9Use locator-based locator.scrollIntoViewIfNeeded() instead. Read more about locators.
Этот метод ожидает проверки actionability, затем пытается прокрутить элемент в видимую область, если он не полностью виден, как это определено ratio
IntersectionObserver.
Вызывает ошибку, если elementHandle
не указывает на элемент, подключенный к Document или ShadowRoot.
Смотрите scrolling для альтернативных способов прокрутки.
Использование
await elementHandle.scrollIntoViewIfNeeded();
await elementHandle.scrollIntoViewIfNeeded(options);
Аргументы
options
Object (optional)-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
selectOption
Added before v1.9Use locator-based locator.selectOption() instead. Read more about locators.
Этот метод ожидает проверки actionability, ждет, пока все указанные опции будут присутствовать в элементе <select>
, и выбирает эти опции.
Если целевой элемент не является элементом <select>
, этот метод вызывает ошибку. Однако, если элемент находится внутри элемента <label>
, который имеет ассоциированный control, будет использован этот control.
Возвращает массив значений опций, которые были успешно выбраны.
Вызывает событие change
и input
, как только все предоставленные опции были выбраны.
Использование
// Single selection matching the value or label
handle.selectOption('blue');
// single selection matching the label
handle.selectOption({ label: 'Blue' });
// multiple selection
handle.selectOption(['red', 'green', 'blue']);
Аргументы
values
null | string | ElementHandle | Array<string> | Object | Array<ElementHandle> | Array<Object>#-
value
string (optional)Совпадение по
option.value
. Необязательно. -
label
string (optional)Совпадение по
option.label
. Необязательно. -
index
number (optional)Совпадение по индексу. Необязательно.
<select>
есть атрибутmultiple
, выбираются все совпадающие опции, в противном случае выбирается только первая опция, совпадающая с одной из переданных. Строковые значения совпадают как с значениями, так и с метками. Опция считается совпадающей, если все указанные свойства совпадают.-
options
Object (optional)-
force
boolean (optional) Added in: v1.13#Нужно ли обходить проверки actionability. По умолчанию
false
. -
noWaitAfter
boolean (optional)#DeprecatedЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
selectText
Added before v1.9Use locator-based locator.selectText() instead. Read more about locators.
Этот метод ожидает проверки actionability, затем фокусируется на элементе и выделяет весь его текстовый контент.
Если элемент находится внутри элемента <label>
, который имеет ассоциированный control, фокусируется и выделяет текст в этом control.
Использование
await elementHandle.selectText();
await elementHandle.selectText(options);
Аргументы
options
Object (optional)-
force
boolean (optional) Added in: v1.13#Нужно ли обходить проверки actionability. По умолчанию
false
. -
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
setChecked
Added in: v1.15Use locator-based locator.setChecked() instead. Read more about locators.
Этот метод отмечает или снимает отметку с элемента, выполняя следующие шаги:
- Убедитесь, что элемент является флажком или радиокнопкой. Если нет, этот метод вызывает ошибку.
- Если элемент уже имеет правильное состояние отметки, этот метод возвращается немедленно.
- Ожидайте проверки actionability на совпадающем элементе, если не установлена опция force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте page.mouse для клика в центре элемента.
- Убедитесь, что элемент теперь отмечен или не отмечен. Если нет, этот метод вызывает ошибку.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод вызывает TimeoutError. Передача нулевого таймаута отключает это.
Использование
await elementHandle.setChecked(checked);
await elementHandle.setChecked(checked, options);
Аргументы
-
Нужно ли отметить или снять отметку с флажка.
-
options
Object (optional)-
Нужно ли обходить проверки actionability. По умолчанию
false
. -
noWaitAfter
boolean (optional)#DeprecatedЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
setInputFiles
Added before v1.9Use locator-based locator.setInputFiles() instead. Read more about locators.
Устанавливает значение файлового ввода в указанные пути к файлам или файлы. Если некоторые из filePaths
являются относительными путями, они разрешаются относительно текущей рабочей директории. Для пустого массива очищает выбранные файлы. Для входов с атрибутом [webkitdirectory]
поддерживается только один путь к директории.
Этот метод ожидает, что ElementHandle указывает на input element. Однако, если элемент находится внутри элемента <label>
, который имеет ассоциированный control, он нацелен на контроль вместо этого.
Использование
await elementHandle.setInputFiles(files);
await elementHandle.setInputFiles(files, options);
Аргументы
files
string | Array<string> | Object | Array<Object>#options
Object (optional)-
noWaitAfter
boolean (optional)#DeprecatedThis option has no effect.
This option has no effect.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
tap
Added before v1.9Use locator-based locator.tap() instead. Read more about locators.
Этот метод выполняет нажатие на элемент, выполняя следующие шаги:
- Ожидание actionability проверок на элементе, если только не установлена опция force.
- Прокрутка элемента в видимую область, если это необходимо.
- Использование page.touchscreen для нажатия в центр элемента или указанную position.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод выбрасывает исключение.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод выбрасывает TimeoutError. Передача нулевого таймаута отключает это.
elementHandle.tap()
требует, чтобы опция hasTouch
контекста браузера была установлена в true.
Использование
await elementHandle.tap();
await elementHandle.tap(options);
Аргументы
options
Object (optional)-
Нужно ли обходить actionability проверки. По умолчанию
false
. -
modifiers
Array<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (optional)#Модификаторные клавиши для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы обратно. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
noWaitAfter
boolean (optional)#DeprecatedThis option has no effect.
This option has no effect.
-
Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trial
boolean (optional) Added in: v1.11#Если установлено, этот метод выполняет только actionability проверки и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
textContent
Added before v1.9Use locator-based locator.textContent() instead. Read more about locators.
Возвращает node.textContent
.
Использование
await elementHandle.textContent();
Возвращает
type
Added before 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.pressSequentially().
Фокусируется на элементе, а затем отправляет событие keydown
, keypress
/input
и keyup
для каждого символа в тексте.
Чтобы нажать специальную клавишу, такую как Control
или ArrowDown
, используйте elementHandle.press().
Использование
Аргументы
-
Текст для ввода в фокусированный элемент.
-
options
Object (optional)-
Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.
-
noWaitAfter
boolean (optional)#DeprecatedThis option has no effect.
This option has no effect.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout() methods.
-
Возвращает
uncheck
Added before v1.9Use locator-based locator.uncheck() instead. Read more about locators.
Этот метод снимает отметку с элемента, выполняя следующие шаги:
- Убедитесь, что элемент является флажком или радиокнопкой. Если нет, этот метод выбрасывает исключение. Если элемент уже снят с отметки, этот метод возвращается немедленно.
- Ожидание actionability проверок на элементе, если только не установлена опция force.
- Прокрутка элемента в видимую область, если это необходимо.
- Использование page.mouse для нажатия в центр элемента.
- Убедитесь, что элемент теперь снят с отметки. Если нет, этот метод выбрасывает исключение.
Если элемент отсоединяется от DOM в любой момент во время действия, этот метод выбрасывает исключение.
Когда все шаги в совокупности не завершены в течение указанного timeout, этот метод выбрасывает TimeoutError. Передача нулевого таймаута отключает это.
Использование
await elementHandle.uncheck();
await elementHandle.uncheck(options);
Аргументы
options
Object (optional)-
Нужно ли обходить actionability проверки. По умолчанию
false
. -
noWaitAfter
boolean (optional)#DeprecatedThis option has no effect.
This option has no effect.
-
position
Object (optional) Added in: v1.11#Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout() methods. -
trial
boolean (optional) Added in: v1.11#Если установлено, этот метод выполняет только actionability проверки и пропускает действие. По умолчанию
false
. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
waitForSelector
Added before v1.9Используйте веб-утверждения, которые проверяют видимость, или основанные на локаторах locator.waitFor().
Возвращает элемент, указанный селектором, когда он удовлетворяет опции state. Возвращает null
, если ожидание для hidden
или detached
.
Ожидает, пока selector относительно элемента удовлетворит опцию state (либо появится/исчезнет из DOM, либо станет видимым/скрытым). Если в момент вызова метода selector уже удовлетворяет условию, метод вернется немедленно. Если селектор не удовлетворяет условию в течение timeout миллисекунд, функция выбросит исключение.
Использование
await page.setContent(`<div><span></span></div>`);
const div = await page.$('div');
// Ожидание селектора 'span' относительно div.
const span = await div.waitForSelector('span', { state: 'attached' });
Этот метод не работает через навигации, используйте page.waitForSelector() вместо этого.
Аргументы
-
Селектор для запроса.
-
options
Object (опционально)-
state
"attached" | "detached" | "visible" | "hidden" (опционально)#По умолчанию
'visible'
. Может быть:'attached'
- ожидание, пока элемент будет присутствовать в DOM.'detached'
- ожидание, пока элемент не будет присутствовать в DOM.'visible'
- ожидание, пока элемент не будет иметь пустую ограничивающую рамку и не будетvisibility:hidden
. Обратите внимание, что элемент без какого-либо содержимого или сdisplay:none
имеет пустую ограничивающую рамку и не считается видимым.'hidden'
- ожидание, пока элемент либо не будет отсоединен от DOM, либо не будет иметь пустую ограничивающую рамку илиvisibility:hidden
. Это противоположно опции'visible'
.
-
strict
boolean (опционально) Добавлено в: v1.15#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
0
- без таймаута. Значение по умолчанию можно изменить через опциюactionTimeout
в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает