Spec-Zone.ru › Playwright

ElementHandle

  • наследует: JSHandle

ElementHandle представляет элемент DOM на странице. Экземпляры ElementHandle можно создать с помощью метода page.$().

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

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

const hrefElement = await page.$('a');
await hrefElement.click();

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

Экземпляры 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();

Методы​

boundingBox​

Добавлено до 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);

Возвращает

  • Promise<null | Object>
    • x number

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

    • y number

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

    • width number

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

    • height number

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

contentFrame​

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

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

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

await elementHandle.contentFrame();

Возвращает

  • Promise<null | Frame>

ownerFrame​

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

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

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

await elementHandle.ownerFrame();

Возвращает

  • Promise<null | Frame>

waitForElementState​

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

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

В зависимости от параметра state этот метод ожидает успешного прохождения одной из проверок возможности взаимодействия. Метод выдаёт ошибку, если элемент отсоединяется во время ожидания, за исключением ожидания состояния "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 (необязательно)

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0 (без тайм-аута). Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

Возвращает

  • Promise<void>

Устаревшие методы​

$​

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

Вместо этого используйте page.locator(), работающий с локаторами. Подробнее см. в разделе локаторы.

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

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

await elementHandle.$(selector);

Аргументы

  • selector string

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

Возвращает

  • Promise<null | ElementHandle>

$$​

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

Вместо этого используйте page.locator(), работающий с локаторами. Подробнее см. в разделе локаторы.

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

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

await elementHandle.$$(selector);

Аргументы

  • selector string

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

Возвращает

  • Promise<Array<ElementHandle>>

$eval​

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

Этот метод не ожидает, пока элемент пройдёт проверки возможности взаимодействия, поэтому может привести к нестабильным тестам. Вместо этого используйте 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');

Аргументы

  • selector string

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

  • pageFunction function(Element) | string

    Функция, выполняемая в контексте страницы.

  • arg EvaluationArgument (необязательно)

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

Возвращает

  • Promise<Serializable>

$$eval​

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

В большинстве случаев лучше подходят 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!'],
);

Аргументы

  • selector string

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

  • pageFunction function(Array<Element>) | string

    Функция, выполняемая в контексте страницы.

  • arg EvaluationArgument (необязательно)

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

Возвращает

  • Promise<Serializable>

check​

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

Вместо этого используйте locator.check(), работающий с локаторами. Подробнее см. в разделе локаторы.

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

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

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

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

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

await elementHandle.check();
await elementHandle.check(options);

Аргументы

  • options Object (необязательно)
    • force boolean (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр не оказывает никакого эффекта.

      Этот параметр не оказывает никакого эффекта.

    • position Object (необязательно)

      • x number

      • y number

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

    • scroll "auto" | "none" (необязательно)

      Определяет, прокручивает ли Playwright страницу до элемента перед выполнением действия. По умолчанию используется "auto": элемент прокручивается в область просмотра при необходимости, в том числе прокручиваются вложенные прокручиваемые контейнеры. Если задано значение "none", Playwright не прокручивает страницу до элемента, и действие завершается ошибкой, если элемент уже не находится в области просмотра. Это полезно, чтобы проверить, доступен ли элемент пользователю без дополнительной прокрутки.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0 (без тайм-аута). Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

    • trial boolean (необязательно)

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

Возвращает

  • Promise<void>

click​

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

Вместо этого используйте locator.click(), работающий с локаторами. Подробнее см. в разделе локаторы.

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

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

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

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

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

await elementHandle.click();
await elementHandle.click(options);

Аргументы

  • options Object (необязательно)
    • button "left" | "right" | "middle" (необязательно)

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

    • clickCount number (необязательно)

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

    • delay number (необязательно)

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

    • force boolean (необязательно)

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

    • modifiers Array<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      В будущем для этого параметра значением по умолчанию будет true.

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

    • position Object (необязательно)

      • x number

      • y number

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

    • scroll "auto" | "none" (необязательно)

      Определяет, прокручивает ли Playwright страницу до появления элемента в области просмотра перед выполнением действия. По умолчанию "auto": элемент прокручивается в область просмотра при необходимости, включая прокрутку вложенных прокручиваемых контейнеров. Если задано значение "none", Playwright не прокручивает страницу, и действие завершается ошибкой, если элемент уже не находится в области просмотра. Это полезно, чтобы убедиться, что пользователь может добраться до элемента без дополнительной прокрутки.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прекращена и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • steps number (необязательно)

      По умолчанию 1. Отправляет n интерполированных событий mousemove, представляющих перемещение от текущего положения курсора Playwright к указанному пункту назначения. Если задано значение 1, в точке назначения генерируется одно событие mousemove.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию 0 — без тайм-аута. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() и page.setDefaultTimeout().

    • trial boolean (необязательно)

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

Возвращает

  • Promise<void>

dblclick​

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

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

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

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

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

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

примечание

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

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

await elementHandle.dblclick();
await elementHandle.dblclick(options);

Аргументы

  • options Object (необязательно)
    • button "left" | "right" | "middle" (необязательно)

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

    • delay number (необязательно)

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

    • force boolean (необязательно)

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

    • modifiers Array<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр ни на что не влияет.

      Этот параметр ни на что не влияет.

    • position Object (необязательно)

      • x number

      • y number

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

    • scroll "auto" | "none" (необязательно)

      Определяет, прокручивает ли Playwright страницу до появления элемента в области просмотра перед выполнением действия. По умолчанию "auto": элемент прокручивается в область просмотра при необходимости, включая прокрутку вложенных прокручиваемых контейнеров. Если задано значение "none", Playwright не прокручивает страницу, и действие завершается ошибкой, если элемент уже не находится в области просмотра. Это полезно, чтобы убедиться, что пользователь может добраться до элемента без дополнительной прокрутки.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прекращена и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • steps number (необязательно)

      По умолчанию 1. Отправляет n интерполированных событий mousemove, представляющих перемещение от текущего положения курсора Playwright к указанному пункту назначения. Если задано значение 1, в точке назначения генерируется одно событие mousemove.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию 0 — без тайм-аута. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() и page.setDefaultTimeout().

    • trial boolean (необязательно)

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

Возвращает

  • Promise<void>

dispatchEvent​

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

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

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

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

await elementHandle.dispatchEvent('click');

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

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

  • DeviceMotionEvent
  • DeviceOrientationEvent
  • DragEvent
  • Event
  • FocusEvent
  • KeyboardEvent
  • MouseEvent
  • PointerEvent
  • TouchEvent
  • WheelEvent

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

// Note you can only create DataTransfer in Chromium and Firefox
const dataTransfer = await page.evaluateHandle(() => new DataTransfer());
await elementHandle.dispatchEvent('dragstart', { dataTransfer });

Аргументы

  • type string

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

  • eventInit EvaluationArgument (необязательно)

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

Возвращает

  • Promise<void>

fill​

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

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

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

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

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

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

await elementHandle.fill(value);
await elementHandle.fill(value, options);

Аргументы

  • value string

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

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

    • force boolean (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр ни на что не влияет.

      Этот параметр ни на что не влияет.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прекращена и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию 0 — без тайм-аута. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() и page.setDefaultTimeout().

Возвращает

  • Promise<void>

focus​

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

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

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

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

await elementHandle.focus();

Возвращает

  • Promise<void>

getAttribute​

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

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

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

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

await elementHandle.getAttribute(name);

Аргументы

  • name string

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

Возвращает

  • Promise<null | string>

hover​

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

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

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

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

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

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

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

await elementHandle.hover();
await elementHandle.hover(options);

Аргументы

  • options Object (необязательно)
    • force boolean (необязательно)

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

    • modifiers Array<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр ни на что не влияет.

      Этот параметр ни на что не влияет.

    • position Object (необязательно)

      • x number

      • y number

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

    • scroll "auto" | "none" (необязательно)

      Определяет, прокручивает ли Playwright страницу до появления элемента в области просмотра перед выполнением действия. По умолчанию "auto": элемент прокручивается в область просмотра при необходимости, включая прокрутку вложенных прокручиваемых контейнеров. Если задано значение "none", Playwright не прокручивает страницу, и действие завершается ошибкой, если элемент уже не находится в области просмотра. Это полезно, чтобы убедиться, что пользователь может добраться до элемента без дополнительной прокрутки.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прекращена и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию 0 — без тайм-аута. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() и page.setDefaultTimeout().

    • trial boolean (необязательно)

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

Возвращает

  • Promise<void>

innerHTML​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

await elementHandle.innerHTML();

Возвращает

  • Promise<string>

innerText​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

await elementHandle.innerText();

Возвращает

  • Promise<string>

inputValue​

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

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

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

Для элементов, не являющихся элементами ввода, возникает ошибка. Однако если элемент находится внутри элемента <label>, связанного с элементом управления, возвращается значение этого элемента управления.

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

await elementHandle.inputValue();
await elementHandle.inputValue(options);

Аргументы

  • options Object (необязательно)
    • timeout number (необязательно)

      Устарело

      Этот параметр игнорируется. Значение возвращается немедленно.

Возвращает

  • Promise<string>

isChecked​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

await elementHandle.isChecked();

Возвращает

  • Promise<boolean>

isDisabled​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

await elementHandle.isDisabled();

Возвращает

  • Promise<boolean>

isEditable​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

await elementHandle.isEditable();

Возвращает

  • Promise<boolean>

isEnabled​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

await elementHandle.isEnabled();

Возвращает

  • Promise<boolean>

isHidden​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

await elementHandle.isHidden();

Возвращает

  • Promise<boolean>

isVisible​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

await elementHandle.isVisible();

Возвращает

  • Promise<boolean>

press​

Добавлено до версии 1.9
Не рекомендуется

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

Фокусирует элемент, а затем вызывает 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);

Аргументы

  • key string

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

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

    • delay number (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      В будущем для этого параметра по умолчанию будет задано значение true.

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

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменен, операция будет отменена и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0, то есть тайм-аут отсутствует. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() и page.setDefaultTimeout().

Возвращает

  • Promise<void>

screenshot​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

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

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

await elementHandle.screenshot();
await elementHandle.screenshot(options);

Аргументы

  • options Object (необязательно)
    • animations "disabled" | "allow" (необязательно)

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

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

      По умолчанию задано значение "allow", при котором анимации остаются без изменений.

    • caret "hide" | "initial" (необязательно)

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

    • mask Array<Locator> (необязательно)

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

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

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

    • omitBackground boolean (необязательно)

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

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

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

    • quality number (необязательно)

      Качество изображения в диапазоне от 0 до 100. Не применяется к изображениям png. Для jpeg по умолчанию используется значение 80. Для webp качество 100 (значение по умолчанию) обеспечивает сжатие без потерь, а более низкие значения используют сжатие с потерями.

    • scale "css" | "device" (необязательно)

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

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

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменен, операция будет отменена и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

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

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

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0, то есть тайм-аут отсутствует. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() и page.setDefaultTimeout().

    • type "png" | "jpeg" | "webp" (необязательно)

      Задает тип снимка; по умолчанию используется png.

Возвращает

  • Promise<Buffer>

scrollIntoViewIfNeeded​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

Другие способы прокрутки см. в разделе прокрутка.

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

await elementHandle.scrollIntoViewIfNeeded();
await elementHandle.scrollIntoViewIfNeeded(options);

Аргументы

  • options Object (необязательно)
    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменен, операция будет отменена и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0, то есть тайм-аут отсутствует. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() и page.setDefaultTimeout().

Возвращает

  • Promise<void>

selectOption​

Добавлено до версии 1.9
Не рекомендуется

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

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

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

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

После выбора всех указанных параметров вызывает события 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 (необязательно)

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

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

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

    • index number (необязательно)

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

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

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

    • force boolean (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр не влияет на результат.

      Этот параметр не влияет на результат.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию, который можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0, то есть тайм-аут отсутствует. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

Возвращает

  • Promise<Array<string>>

selectText​

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

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

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

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

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

await elementHandle.selectText();
await elementHandle.selectText(options);

Аргументы

  • options Object (необязательно)
    • force boolean (необязательно)

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

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию, который можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0, то есть тайм-аут отсутствует. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

Возвращает

  • Promise<void>

setChecked​

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

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

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

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

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

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

await elementHandle.setChecked(checked);
await elementHandle.setChecked(checked, options);

Аргументы

  • checked boolean

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

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

    • force boolean (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр не влияет на результат.

      Этот параметр не влияет на результат.

    • position Object (необязательно)

      • x number

      • y number

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

    • scroll "auto" | "none" (необязательно)

      Определяет, будет ли Playwright прокручивать страницу, чтобы элемент оказался в области просмотра перед выполнением действия. По умолчанию — "auto": элемент прокручивается в область просмотра при необходимости, включая прокрутку вложенных прокручиваемых контейнеров. Если задано значение "none", Playwright не прокручивает страницу, и действие завершается ошибкой, если элемент уже не находится в области просмотра. Это полезно, чтобы проверить, доступен ли элемент пользователю без дополнительной прокрутки.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию, который можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0, то есть тайм-аут отсутствует. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

    • trial boolean (необязательно)

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

Возвращает

  • Promise<void>

setInputFiles​

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

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

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

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

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

await elementHandle.setInputFiles(files);
await elementHandle.setInputFiles(files, options);

Аргументы

  • files string | Array<string> | Object | Array<Object>
    • name string

      Имя файла

    • mimeType string

      Тип файла

    • buffer Buffer

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

  • options Object (необязательно)
    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр не влияет на результат.

      Этот параметр не влияет на результат.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию, который можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0, то есть тайм-аут отсутствует. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

Возвращает

  • Promise<void>

tap​

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

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

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

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

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

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

Примечание

Для elementHandle.tap() требуется установить для параметра hasTouch контекста браузера значение true.

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

await elementHandle.tap();
await elementHandle.tap(options);

Аргументы

  • options Object (необязательно)
    • force boolean (необязательно)

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

    • modifiers Array<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр не влияет на результат.

      Этот параметр не влияет на результат.

    • position Object (необязательно)

      • x number

      • y number

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

    • scroll "auto" | "none" (необязательно)

      Определяет, будет ли Playwright прокручивать страницу, чтобы элемент оказался в области просмотра перед выполнением действия. По умолчанию — "auto": элемент прокручивается в область просмотра при необходимости, включая прокрутку вложенных прокручиваемых контейнеров. Если задано значение "none", Playwright не прокручивает страницу, и действие завершается ошибкой, если элемент уже не находится в области просмотра. Это полезно, чтобы проверить, доступен ли элемент пользователю без дополнительной прокрутки.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию, который можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0, то есть тайм-аут отсутствует. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

    • trial boolean (необязательно)

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

Возвращает

  • Promise<void>

textContent​

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

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

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

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

await elementHandle.textContent();

Возвращает

  • Promise<null | string>

type​

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

В большинстве случаев вместо этого следует использовать locator.fill(). Нажимать клавиши по одной нужно только при наличии на странице особой обработки клавиатуры — в таком случае используйте locator.pressSequentially().

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

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

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

Аргументы

  • text string

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

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

    • delay number (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр не влияет на результат.

      Этот параметр не влияет на результат.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0 (без тайм-аута). Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

Возвращает

  • Promise<void>

uncheck​

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

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

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

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

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

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

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

await elementHandle.uncheck();
await elementHandle.uncheck(options);

Аргументы

  • options Object (необязательно)
    • force boolean (необязательно)

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

    • noWaitAfter boolean (необязательно)

      Устарело

      Этот параметр не влияет на результат.

      Этот параметр не влияет на результат.

    • position Object (необязательно)

      • x number

      • y number

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

    • scroll "auto" | "none" (необязательно)

      Определяет, прокручивает ли Playwright страницу, чтобы элемент оказался в области видимости, перед выполнением действия. По умолчанию используется "auto": элемент прокручивается в область видимости при необходимости, в том числе во вложенных контейнерах с прокруткой. Если задано "none", Playwright не прокручивает страницу, и действие завершается ошибкой, если элемент уже не находится в области просмотра. Это полезно, чтобы проверить, доступен ли элемент пользователю без дополнительной прокрутки.

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0 (без тайм-аута). Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

    • trial boolean (необязательно)

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

Возвращает

  • Promise<void>

waitForSelector​

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

Вместо этого используйте веб-проверки видимости или locator.waitFor(), основанный на локаторе.

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

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

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

await page.setContent(`<div><span></span></div>`);
const div = await page.$('div');
// Waiting for the 'span' selector relative to the div.
const span = await div.waitForSelector('span', { state: 'attached' });
Примечание

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

Аргументы

  • selector string

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

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

    • signal AbortSignal (необязательно)

      Позволяет отменить операцию с помощью AbortSignal. Если сигнал отменён, операция будет прервана и вызовет ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout() или page.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

    • state "attached" | "detached" | "visible" | "hidden" (необязательно)

      По умолчанию — 'visible'. Возможные значения:

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

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

    • timeout number (необязательно)

      Максимальное время в миллисекундах. По умолчанию — 0 (без тайм-аута). Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методов browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

Возвращает

  • Promise<null | ElementHandle>

© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-elementhandle

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API