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

ElementHandle

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

Не рекомендуется

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

var handle = await page.QuerySelectorAsync("a");
await handle.ClickAsync();

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

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

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

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

var handle = await page.QuerySelectorAsync("text=Submit");
await handle.HoverAsync();
await handle.ClickAsync();

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

var locator = page.GetByText("Submit");
await locator.HoverAsync();
await locator.ClickAsync();

Методы

BoundingBoxAsync

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

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

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

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

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

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

var box = await elementHandle.BoundingBoxAsync();
await page.Mouse.ClickAsync(box.X + box.Width / 2, box.Y + box.Height / 2);

Возвращает

  • BoundingBox?#
    • x [float]

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

    • y [float]

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

    • width [float]

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

    • height [float]

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


ContentFrameAsync

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

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

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

await ElementHandle.ContentFrameAsync();

Возвращает


OwnerFrameAsync

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

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

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

await ElementHandle.OwnerFrameAsync();

Возвращает


WaitForElementStateAsync

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

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

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

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

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

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

await ElementHandle.WaitForElementStateAsync(state, options);

Аргументы

  • state enum ElementState { Visible, Hidden, Stable, Enabled, Disabled, Editable }#

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

  • options ElementHandleWaitForElementStateOptions? (опционально)

    • Timeout [float]? (опционально)#

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

Возвращает


Устаревшие

CheckAsync

Добавлено до v1.9 elementHandle.CheckAsync
Не рекомендуется

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

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

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

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

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

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

await ElementHandle.CheckAsync(options);

Аргументы

  • options ElementHandleCheckOptions? (опционально)
    • Force bool? (опционально)#

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

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

      Устарело

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

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

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

      • X [float]

      • Y [float]

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

    • Timeout [float]? (опционально)#

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

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

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

Возвращает


ClickAsync

Добавлено до v1.9 elementHandle.ClickAsync
Не рекомендуется

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

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

  1. Ожидание проверок actionability на элементе, если только не установлен параметр Force.
  2. Прокрутите элемент в поле зрения, если это необходимо.
  3. Используйте Page.Mouse для клика в центр элемента или указанную Position.
  4. Ожидание, пока инициированные навигации либо завершатся успешно, либо неудачно, если только не установлен параметр NoWaitAfter.

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

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

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

await ElementHandle.ClickAsync(options);

Аргументы

  • options ElementHandleClickOptions? (опционально)
    • Button enum MouseButton { Left, Right, Middle }? (опционально)#

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

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

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

    • Delay [float]? (опционально)#

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

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

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

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#

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

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

      Устарело

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

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

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

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

    • Timeout [float]? (опционально)#

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

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

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

Возвращает


DblClickAsync

Добавлено до v1.9 elementHandle.DblClickAsync
Не рекомендуется

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

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

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

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

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

примечание

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

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

await ElementHandle.DblClickAsync(options);

Аргументы

  • options ElementHandleDblClickOptions? (опционально)
    • Button enum MouseButton { Left, Right, Middle }? (опционально)#

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

    • Delay [float]? (опционально)#

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

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

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

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#

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

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

      Устарело

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

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

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

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

    • Timeout [float]? (опционально)#

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

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

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

Возвращает


DispatchEventAsync

Добавлено до v1.9 elementHandle.DispatchEventAsync
Не рекомендуется

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

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

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

await elementHandle.DispatchEventAsync("click");

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

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

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

var dataTransfer = await page.EvaluateHandleAsync("() => new DataTransfer()");
await elementHandle.DispatchEventAsync("dragstart", new Dictionary<string, object>
{
{ "dataTransfer", dataTransfer }
});

Аргументы

  • type string#

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

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

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

Возвращает


EvalOnSelectorAsync

Добавлено в: v1.9 elementHandle.EvalOnSelectorAsync
Не рекомендуется

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

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

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

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

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

var tweetHandle = await page.QuerySelectorAsync(".tweet");
Assert.AreEqual("100", await tweetHandle.EvalOnSelectorAsync(".like", "node => node.innerText"));
Assert.AreEqual("10", await tweetHandle.EvalOnSelectorAsync(".retweets", "node => node.innerText"));

Аргументы

  • selector string#

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

  • expression string#

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

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

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

Возвращает

  • [object]#

EvalOnSelectorAllAsync

Добавлено в: v1.9 elementHandle.EvalOnSelectorAllAsync
Не рекомендуется

В большинстве случаев Locator.EvaluateAllAsync(), другие вспомогательные методы Locator и утверждения, ориентированные на веб, выполняют работу лучше.

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

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

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

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

<div class="feed">
<div class="tweet">Hello!</div>
<div class="tweet">Hi!</div>
</div>
var feedHandle = await page.QuerySelectorAsync(".feed");
Assert.AreEqual(new [] { "Hello!", "Hi!" }, await feedHandle.EvalOnSelectorAllAsync<string[]>(".tweet", "nodes => nodes.map(n => n.innerText)"));

Аргументы

  • selector string#

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

  • expression string#

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

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

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

Возвращает

  • [object]#

FillAsync

Добавлено до v1.9 elementHandle.FillAsync
Не рекомендуется

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

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

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

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

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

await ElementHandle.FillAsync(value, options);

Аргументы

  • value string#

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

  • options ElementHandleFillOptions? (опционально)

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

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

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

      Устарело

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

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

    • Timeout [float]? (опционально)#

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

Возвращает


FocusAsync

Добавлено до версии v1.9 elementHandle.FocusAsync
Не рекомендуется

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

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

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

await ElementHandle.FocusAsync();

Возвращает


GetAttributeAsync

Добавлено до версии v1.9 elementHandle.GetAttributeAsync
Не рекомендуется

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

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

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

await ElementHandle.GetAttributeAsync(name);

Аргументы

  • name string#

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

Возвращает


HoverAsync

Добавлено до версии v1.9 elementHandle.HoverAsync
Не рекомендуется

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

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

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

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

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

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

await ElementHandle.HoverAsync(options);

Аргументы

  • options ElementHandleHoverOptions? (опционально)
    • Force bool? (опционально)#

      Пропускать ли проверки действительности. По умолчанию false.

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#

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

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

      Устарело

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

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

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

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

    • Timeout [float]? (опционально)#

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

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

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

Возвращает


InnerHTMLAsync

Добавлено до версии v1.9 elementHandle.InnerHTMLAsync
Не рекомендуется

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

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

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

await ElementHandle.InnerHTMLAsync();

Возвращает


InnerTextAsync

Добавлено до версии v1.9 elementHandle.InnerTextAsync
Не рекомендуется

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

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

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

await ElementHandle.InnerTextAsync();

Возвращает


InputValueAsync

Добавлено в: v1.13 elementHandle.InputValueAsync
Не рекомендуется

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

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

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

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

await ElementHandle.InputValueAsync(options);

Аргументы

  • options ElementHandleInputValueOptions? (опционально)
    • Timeout [float]? (опционально)#

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

Возвращает


IsCheckedAsync

Добавлено до версии v1.9 elementHandle.IsCheckedAsync
Не рекомендуется

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

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

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

await ElementHandle.IsCheckedAsync();

Возвращает


IsDisabledAsync

Добавлено до версии v1.9 elementHandle.IsDisabledAsync
Не рекомендуется

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

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

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

await ElementHandle.IsDisabledAsync();

Возвращает


IsEditableAsync

Добавлено до версии v1.9 elementHandle.IsEditableAsync
Не рекомендуется

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

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

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

await ElementHandle.IsEditableAsync();

Возвращает


IsEnabledAsync

Добавлено до версии v1.9 elementHandle.IsEnabledAsync
Не рекомендуется

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

Возвращает, является ли элемент включенным.

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

await ElementHandle.IsEnabledAsync();

Возвращает


IsHiddenAsync

Добавлено до версии v1.9 elementHandle.IsHiddenAsync
Не рекомендуется

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

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

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

await ElementHandle.IsHiddenAsync();

Возвращает


IsVisibleAsync

Добавлено до версии v1.9 elementHandle.IsVisibleAsync
Не рекомендуется

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

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

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

await ElementHandle.IsVisibleAsync();

Возвращает


PressAsync

Добавлено до версии v1.9 elementHandle.PressAsync
Не рекомендуется

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

Фокусирует элемент, а затем использует Keyboard.DownAsync() и Keyboard.UpAsync().

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.PressAsync(key, options);

Аргументы

  • key string#

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

  • options ElementHandlePressOptions? (опционально)

    • Delay [float]? (опционально)#

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

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

      Устарело

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

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

    • Timeout [float]? (опционально)#

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

Возвращает


QuerySelectorAsync

Добавлено в: v1.9 elementHandle.QuerySelectorAsync
Не рекомендуется

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

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

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

await ElementHandle.QuerySelectorAsync(selector);

Аргументы

  • selector string#

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

Возвращает


QuerySelectorAllAsync

Добавлено в: v1.9 elementHandle.QuerySelectorAllAsync
Не рекомендуется

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

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

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

await ElementHandle.QuerySelectorAllAsync(selector);

Аргументы

  • selector string#

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

Возвращает


ScreenshotAsync

Добавлено до версии v1.9 elementHandle.ScreenshotAsync
Не рекомендуется

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

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

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

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

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

await ElementHandle.ScreenshotAsync(options);

Аргументы

  • options ElementHandleScreenshotOptions? (опционально)
    • Animations enum ScreenshotAnimations { Disabled, Allow }? (опционально)#

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

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

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

    • Caret enum ScreenshotCaret { Hide, Initial }? (опционально)#

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

    • Mask IEnumerable?<Locator> (опционально)#

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

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

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

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

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

    • Path string? (опционально)#

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

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

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

    • Scale enum ScreenshotScale { Css, Device }? (опционально)#

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

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

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

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

    • Timeout [float]? (опционально)#

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

    • Type enum ScreenshotType { Png, Jpeg }? (опционально)#

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

Возвращает


ScrollIntoViewIfNeededAsync

Добавлено до версии v1.9 elementHandle.ScrollIntoViewIfNeededAsync
Не рекомендуется

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

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

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

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

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

await ElementHandle.ScrollIntoViewIfNeededAsync(options);

Аргументы

  • options ElementHandleScrollIntoViewIfNeededOptions? (необязательно)
    • Timeout [float]? (необязательно)#

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

Возвращает


SelectOptionAsync

Добавлено до версии v1.9 elementHandle.SelectOptionAsync
Не рекомендуется

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

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

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

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

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

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

// Одиночный выбор, соответствующий значению или метке
await handle.SelectOptionAsync(new[] { "blue" });
// одиночный выбор, соответствующий метке
await handle.SelectOptionAsync(new[] { new SelectOptionValue() { Label = "blue" } });
// множественный выбор
await handle.SelectOptionAsync(new[] { "red", "green", "blue" });
// множественный выбор для blue, red и второй опции
await handle.SelectOptionAsync(new[] {
new SelectOptionValue() { Label = "blue" },
new SelectOptionValue() { Index = 2 },
new SelectOptionValue() { Value = "red" }});

Аргументы

  • values string | ElementHandle | IEnumerable | SelectOption | IEnumerable | IEnumerable?#
    • Value string? (необязательно)

      Соответствует option.value. Необязательно.

    • Label string? (необязательно)

      Соответствует option.label. Необязательно.

    • Index int? (необязательно)

      Соответствует индексу. Необязательно.

    Опции для выбора. Если у <select> есть атрибут multiple, все соответствующие опции выбираются, в противном случае выбирается только первая опция, соответствующая одной из переданных опций. Строковые значения соответствуют как значениям, так и меткам. Опция считается соответствующей, если все указанные свойства совпадают.
  • options ElementHandleSelectOptionOptions? (необязательно)
    • Force bool? (необязательно) Добавлено в: v1.13#

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

    • NoWaitAfter bool? (необязательно)#

      Устарело

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

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

    • Timeout [float]? (необязательно)#

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

Возвращает


SelectTextAsync

Добавлено до версии v1.9 elementHandle.SelectTextAsync
Не рекомендуется

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

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

Если элемент находится внутри элемента <label>, который имеет связанную управляющую часть, фокусируется и выделяет текст в управляющей части.

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

await ElementHandle.SelectTextAsync(options);

Аргументы

  • options ElementHandleSelectTextOptions? (необязательно)
    • Force bool? (необязательно) Добавлено в: v1.13#

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

    • Timeout [float]? (необязательно)#

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

Возвращает


SetCheckedAsync

Добавлено в: v1.15 elementHandle.SetCheckedAsync
Не рекомендуется

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

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

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

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

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

await ElementHandle.SetCheckedAsync(checked, options);

Аргументы

  • checkedState bool#

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

  • options ElementHandleSetCheckedOptions? (необязательно)

    • Force bool? (необязательно)#

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

    • NoWaitAfter bool? (необязательно)#

      Устарело

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

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

    • Position Position? (необязательно)#

      • X [float]

      • Y [float]

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

    • Timeout [float]? (необязательно)#

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

    • Trial bool? (необязательно)#

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

Возвращает


SetInputFilesAsync

Добавлено до версии v1.9 elementHandle.SetInputFilesAsync
Не рекомендуется

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

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

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

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

await ElementHandle.SetInputFilesAsync(files, options);

Аргументы

  • files string | IEnumerable<string> | FilePayload | IEnumerable<FilePayload>#
    • Name string

      Имя файла

    • MimeType string

      Тип файла

    • Buffer byte[]

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

  • options ElementHandleSetInputFilesOptions? (необязательно)
    • NoWaitAfter bool? (необязательно)#

      Устарело

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

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

    • Timeout [float]? (необязательно)#

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

Возвращает


TapAsync

Добавлено до версии v1.9 elementHandle.TapAsync
Не рекомендуется

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

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

  1. Ожидайте проверки действительности на элементе, если только не установлена опция Force.
  2. Прокрутите элемент в видимую область, если это необходимо.
  3. Используйте Page.Touchscreen для нажатия в центре элемента или в указанной Position.

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

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

примечание

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

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

await ElementHandle.TapAsync(options);

Аргументы

  • options ElementHandleTapOptions? (необязательно)
    • Force bool? (необязательно)#

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

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (необязательно)#

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

    • NoWaitAfter bool? (необязательно)#

      Устарело

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

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

    • Position Position? (необязательно)#

      • X [float]

      • Y [float]

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

    • Timeout [float]? (необязательно)#

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

    • Trial bool? (необязательно) Добавлено в: v1.11#

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

Возвращает


TextContentAsync

Добавлено до версии v1.9 elementHandle.TextContentAsync
Не рекомендуется

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

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

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

await ElementHandle.TextContentAsync();

Возвращает


TypeAsync

Добавлено до версии v1.9 elementHandle.TypeAsync
Устарело

В большинстве случаев вам следует использовать Locator.FillAsync() вместо этого. Вам нужно нажимать клавиши одну за другой, только если на странице есть специальная обработка клавиатуры - в этом случае используйте Locator.PressSequentiallyAsync().

Фокусируется на элементе, а затем отправляет события keydown, keypress/input и keyup для каждого символа в тексте.

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

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

Аргументы

  • text string#

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

  • options ElementHandleTypeOptions? (необязательно)

    • Delay [float]? (необязательно)#

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

    • NoWaitAfter bool? (необязательно)#

      Устарело

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

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

    • Timeout [float]? (необязательно)#

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

Возвращает


UncheckAsync

Добавлено до версии v1.9 elementHandle.UncheckAsync
Не рекомендуется

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

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

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

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

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

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

await ElementHandle.UncheckAsync(options);

Аргументы

  • options ElementHandleUncheckOptions? (необязательно)
    • Force bool? (необязательно)#

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

    • NoWaitAfter bool? (необязательно)#

      Устарело

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

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

    • Position Position? (необязательно) Добавлено в: v1.11#

      • X [float]

      • Y [float]

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

    • Timeout [float]? (необязательно)#

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

    • Trial bool? (необязательно) Добавлено в: v1.11#

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

Возвращает


WaitForSelectorAsync

Добавлено до версии v1.9 elementHandle.WaitForSelectorAsync
Не рекомендуется

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

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

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

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

await page.SetContentAsync("<div><span></span></div>");
var div = await page.QuerySelectorAsync("div");
// Ожидание селектора "span" относительно div.
var span = await page.WaitForSelectorAsync("span", WaitForSelectorState.Attached);
примечание

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

Аргументы

  • selector string#

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

  • options ElementHandleWaitForSelectorOptions? (необязательно)

    • State enum WaitForSelectorState { 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, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.

Возвращает