Playwright.JSHandle (playwright v0.1.17-preview-1) View Source

Playwright.JSHandle represents an in-page JavaScript object. JSHandles can be created with Playwright.Page.evaluate_handle/3.

Example

{:ok, handle} = Page.evaluate_handle(page, "() => window")

JSHandle prevents the referenced JavaScript object from being garbage collected unless the handle is disposed with Playwright.JSHandle.dispose/1. JSHandles are auto-disposed when their origin frame gets navigated or the parent context gets destroyed.

JSHandle instances can be used as arguments to:

Link to this section Summary

Types

t()

%Playwright.JSHandle{}

Functions

Returns the return value from executing param: expression in the browser as a Playwright.JSHandle.

Optional callback implementation for Playwright.ChannelOwner.init/2.

Link to this section Types

Specs

t() :: %Playwright.JSHandle{
  connection: term(),
  guid: term(),
  initializer: term(),
  listeners: term(),
  parent: term(),
  preview: term(),
  type: term()
}

%Playwright.JSHandle{}

Link to this section Functions

Link to this function

evaluate(handle, expression, arg \\ nil)

View Source
Link to this function

evaluate_handle(handle, expression, arg \\ nil)

View Source

Specs

evaluate_handle(
  t()
  | Playwright.ElementHandle.t()
  | {:ok, t() | Playwright.ElementHandle.t()},
  binary(),
  any()
) :: {:ok, t() | Playwright.ElementHandle.t()}

Returns the return value from executing param: expression in the browser as a Playwright.JSHandle.

This function passes the handle as the first argument to param: expression.

The only difference between Playwright.JSHandle.evaluate/3 and Playwright.JSHandle.evaluate_handle/3 is that evaluate_handle returns Playwright.JSHandle.

If the expression passed to Playwright.JSHandle.evaluate_handle/3 returns a Promise, Playwright.JSHandle.evaluate_handle/3 waits for the promise to resolve and return its value.

See Playwright.Page.evaluate_handle/3 for more details.

Returns

  • {:ok, %Playwright.JSHandle{}}

Arguments

key / nametypedescription
expressionparambinary()Function to be evaluated in the page context.
argparamany()Argument to pass to expression (optional)
Link to this function

init(owner, initializer)

View Source

Specs

init(struct(), map()) :: {atom(), struct()}

Optional callback implementation for Playwright.ChannelOwner.init/2.

If implemented, the callback will receive:

  1. The newly created "channel owner" struct.
  2. The :initializer received from the Playwright browser server.

The implementation has the option of "patching" the struct as stored in the catalog, and/or binding event handlers.

Example

def init(owner, _initializer) do
  Channel.bind(owner, :close, fn event ->
    Logger.warn("Closing #{inspect(event.target)}")
  end)

  {:ok, %{owner | version: "1.2.3"}}
end

Returns

  • {:ok, %{}}

Arguments

key / nametypedescription
ownerparamstruct()The newly created channel owner (resource).
initializerparamstruct()The initializer received from with the channel owner instance was derived.