Spec-Zone.ru › Playwright

JSHandle

JSHandle представляет собой объект JavaScript в веб-странице. JSHandle можно создать с помощью метода page.evaluateHandle().

const windowHandle = await page.evaluateHandle(() => window);
// ...

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

Экземпляры JSHandle могут быть использованы в качестве аргументов методов page.$eval(), page.evaluate() и page.evaluateHandle().

Методы​

asElement​

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

Возвращает либо null , либо сам объект-обработчик, если объект-обработчик является экземпляром ElementHandle.

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

jsHandle.asElement();

Возвращает

  • null | ElementHandle

dispose​

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

Метод jsHandle.dispose прекращает ссылку на объект-обработчик элемента.

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

await jsHandle.dispose();

Возвращает

  • Promise<void>

evaluate​

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

Возвращает значение, возвращенное функцией pageFunction.

Этот метод передает этот обработчик в качестве первого аргумента функции pageFunction.

Если функция pageFunction возвращает Promise, то handle.evaluate будет ожидать разрешения обещания и вернет его значение.

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

const tweetHandle = await page.$('.tweet .retweets');
expect(await tweetHandle.evaluate(node => node.innerText)).toBe('10 retweets');

Аргументы

  • pageFunction функция | строка

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

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

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

Возвращает

  • Promise<сериализуемое>

evaluateHandle​

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

Возвращает результат выполнения функции pageFunction в виде JSHandle.

Единственное отличие между jsHandle.evaluate и jsHandle.evaluateHandle состоит в том, что jsHandle.evaluateHandle возвращает JSHandle.

Если функция, переданная в jsHandle.evaluateHandle , возвращает Promise, тогда jsHandle.evaluateHandle будет ожидать разрешения обещания и возвращать его значение.

См. page.evaluateHandle() для получения более подробной информации.

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

await jsHandle.evaluateHandle(pageFunction);
await jsHandle.evaluateHandle(pageFunction, arg);

Аргументы

  • pageFunction функция | строка

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

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

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

Возвращает

  • Promise<JSHandle>

getProperties​

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

Метод возвращает карту с собственными именами свойств в качестве ключей и экземплярами JSHandle для значений свойств.

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

const handle = await page.evaluateHandle(() => ({ window, document }));
const properties = await handle.getProperties();
const windowHandle = properties.get('window');
const documentHandle = properties.get('document');
await handle.dispose();

Возвращает

  • Promise<Map<строка, JSHandle>>

getProperty​

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

Извлекает отдельное свойство из связанного объекта.

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

await jsHandle.getProperty(propertyName);

Аргументы

  • propertyName строка

    свойство для извлечения

Возвращает

  • Promise<JSHandle>

jsonValue​

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

Возвращает JSON-представление объекта. Если у объекта есть функция toJSON, она не будет вызвана.

примечание

Метод вернет пустой JSON-объект, если связанный объект нельзя привести к строковому виду. Он вызовет ошибку, если объект содержит циклические ссылки.

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

await jsHandle.jsonValue();

Возвращает

  • Promise<сериализуемое>

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

Spec-Zone.ru

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