class Playwright::JavaScript::Expression

Public Class Methods

new(expression, arg) click to toggle source
# File lib/playwright/javascript/expression.rb, line 4
def initialize(expression, arg)
  @expression = expression
  @serialized_arg = ValueSerializer.new(arg).serialize
end

Public Instance Methods

eval_on_selector(channel, selector, strict: nil) click to toggle source
# File lib/playwright/javascript/expression.rb, line 27
def eval_on_selector(channel, selector, strict: nil)
  params = {
    selector: selector,
    expression: @expression,
    arg: @serialized_arg,
  }
  params[:strict] = strict if strict
  value = channel.send_message_to_server('evalOnSelector', params)
  ValueParser.new(value).parse
end
eval_on_selector_all(channel, selector) click to toggle source
# File lib/playwright/javascript/expression.rb, line 38
def eval_on_selector_all(channel, selector)
  value = channel.send_message_to_server(
    'evalOnSelectorAll',
    selector: selector,
    expression: @expression,
    arg: @serialized_arg,
  )
  ValueParser.new(value).parse
end
evaluate(channel) click to toggle source
# File lib/playwright/javascript/expression.rb, line 9
def evaluate(channel)
  value = channel.send_message_to_server(
    'evaluateExpression',
    expression: @expression,
    arg: @serialized_arg,
  )
  ValueParser.new(value).parse
end
evaluate_handle(channel) click to toggle source
# File lib/playwright/javascript/expression.rb, line 18
def evaluate_handle(channel)
  resp = channel.send_message_to_server(
    'evaluateExpressionHandle',
    expression: @expression,
    arg: @serialized_arg,
  )
  ::Playwright::ChannelOwner.from(resp)
end
wait_for_function(channel, polling:, timeout:) click to toggle source
# File lib/playwright/javascript/expression.rb, line 48
def wait_for_function(channel, polling:, timeout:)
  params = {
    expression: @expression,
    arg: @serialized_arg,
    polling: polling,
    timeout: timeout,
  }.compact
  if polling.is_a?(Numeric)
    params[:pollingInterval] = polling
  end
  resp = channel.send_message_to_server('waitForFunction', params)
  ChannelOwners::JSHandle.from(resp)
end