Interface JSHandle<T>

JSHandle represents an in-page JavaScript object. JSHandles can be created with the page.evaluateHandle(pageFunction[, arg]) method.

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

JSHandle prevents the referenced JavaScript object being garbage collected unless the handle is exposed with jsHandle.dispose(). JSHandles are auto-disposed when their origin frame gets navigated or the parent context gets destroyed.

JSHandle instances can be used as an argument in page.$eval(selector, pageFunction[, arg, options]), page.evaluate(pageFunction[, arg]) and page.evaluateHandle(pageFunction[, arg]) methods.

Type Parameters

  • T = any

Hierarchy

Methods

  • Returns either null or the object handle itself, if the object handle is an instance of ElementHandle.

    Returns T extends Node
        ? ElementHandle<T>
        : null

  • The jsHandle.dispose method stops referencing the element handle.

    Returns Promise<void>

  • Returns the return value of pageFunction.

    This method passes this handle as the first argument to pageFunction.

    If pageFunction returns a [Promise], then handle.evaluate would wait for the promise to resolve and return its value.

    Usage

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

    Type Parameters

    • R

    • Arg

    • O = T

    Parameters

    • pageFunction: PageFunctionOn<O, Arg, R>

      Function to be evaluated in the page context.

    • arg: Arg

      Optional argument to pass to pageFunction.

    Returns Promise<R>

  • Returns the return value of pageFunction.

    This method passes this handle as the first argument to pageFunction.

    If pageFunction returns a [Promise], then handle.evaluate would wait for the promise to resolve and return its value.

    Usage

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

    Type Parameters

    • R

    • O = T

    Parameters

    • pageFunction: PageFunctionOn<O, void, R>

      Function to be evaluated in the page context.

    • Optional arg: any

      Optional argument to pass to pageFunction.

      Optional

    Returns Promise<R>

  • Returns the return value of pageFunction as a JSHandle.

    This method passes this handle as the first argument to pageFunction.

    The only difference between jsHandle.evaluate and jsHandle.evaluateHandle is that jsHandle.evaluateHandle returns JSHandle.

    If the function passed to the jsHandle.evaluateHandle returns a [Promise], then jsHandle.evaluateHandle would wait for the promise to resolve and return its value.

    See page.evaluateHandle(pageFunction[, arg]) for more details.

    Type Parameters

    • R

    • Arg

    • O = T

    Parameters

    • pageFunction: PageFunctionOn<O, Arg, R>

      Function to be evaluated in the page context.

    • arg: Arg

      Optional argument to pass to pageFunction.

    Returns Promise<SmartHandle<R>>

  • Returns the return value of pageFunction as a JSHandle.

    This method passes this handle as the first argument to pageFunction.

    The only difference between jsHandle.evaluate and jsHandle.evaluateHandle is that jsHandle.evaluateHandle returns JSHandle.

    If the function passed to the jsHandle.evaluateHandle returns a [Promise], then jsHandle.evaluateHandle would wait for the promise to resolve and return its value.

    See page.evaluateHandle(pageFunction[, arg]) for more details.

    Type Parameters

    • R

    • O = T

    Parameters

    • pageFunction: PageFunctionOn<O, void, R>

      Function to be evaluated in the page context.

    • Optional arg: any

      Optional argument to pass to pageFunction.

      Optional

    Returns Promise<SmartHandle<R>>

  • The method returns a map with own property names as keys and JSHandle instances for the property values.

    Usage

    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();

    Returns Promise<Map<string, JSHandle<any>>>

  • Fetches a single property from the referenced object.

    Parameters

    • propertyName: string

      property to get

    Returns Promise<JSHandle<any>>

  • Returns a JSON representation of the object. If the object has a toJSON function, it will not be called.

    NOTE The method will return an empty JSON object if the referenced object is not stringifiable. It will throw an error if the object has circular references.

    Returns Promise<T>

Generated using TypeDoc