Class: Playwright::JavaScript::Expression

Inherits:
Object
  • Object
show all
Defined in:
lib/playwright/javascript/expression.rb

Instance Method Summary collapse

Constructor Details

#initialize(expression) ⇒ Expression

Returns a new instance of Expression.



4
5
6
7
# File 'lib/playwright/javascript/expression.rb', line 4

def initialize(expression)
  @expression = expression
  @serialized_arg = ValueSerializer.new(nil).serialize
end

Instance Method Details

#eval_on_selector(channel, selector) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/playwright/javascript/expression.rb', line 29

def eval_on_selector(channel, selector)
  value = channel.send_message_to_server(
    'evalOnSelector',
    selector: selector,
    expression: @expression,
    isFunction: false,
    arg: @serialized_arg,
  )
  ValueParser.new(value).parse
end

#eval_on_selector_all(channel, selector) ⇒ Object



40
41
42
43
44
45
46
47
48
49
# File 'lib/playwright/javascript/expression.rb', line 40

def eval_on_selector_all(channel, selector)
  value = channel.send_message_to_server(
    'evalOnSelectorAll',
    selector: selector,
    expression: @expression,
    isFunction: false,
    arg: @serialized_arg,
  )
  ValueParser.new(value).parse
end

#evaluate(channel) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/playwright/javascript/expression.rb', line 9

def evaluate(channel)
  value = channel.send_message_to_server(
    'evaluateExpression',
    expression: @expression,
    isFunction: false,
    arg: @serialized_arg,
  )
  ValueParser.new(value).parse
end

#evaluate_handle(channel) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/playwright/javascript/expression.rb', line 19

def evaluate_handle(channel)
  resp = channel.send_message_to_server(
    'evaluateExpressionHandle',
    expression: @expression,
    isFunction: false,
    arg: @serialized_arg,
  )
  ::Playwright::ChannelOwner.from(resp)
end

#wait_for_function(channel, polling:, timeout:) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/playwright/javascript/expression.rb', line 51

def wait_for_function(channel, polling:, timeout:)
  params = {
    expression: @expression,
    isFunction: false,
    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