Class: Browserctl::PageProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/browserctl/workflow.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, client, replay_context: nil, matcher: nil) ⇒ PageProxy

Returns a new instance of PageProxy.



214
215
216
217
218
219
# File 'lib/browserctl/workflow.rb', line 214

def initialize(name, client, replay_context: nil, matcher: nil)
  @name           = name
  @client         = client
  @replay_context = replay_context
  @matcher        = matcher || Replay::FingerprintMatcher.new
end

Instance Attribute Details

#replay_contextObject

Returns the value of attribute replay_context.



197
198
199
# File 'lib/browserctl/workflow.rb', line 197

def replay_context
  @replay_context
end

Class Method Details

.delegate_unwrap(method_name, extract: nil) ⇒ Object

Declarative wrapper for ‘unwrap @client.METHOD(@name, …)` one-liners. Forwards positional + keyword args verbatim. Pass `extract:` to return a single key from the client response instead of unwrapping.



202
203
204
205
206
207
208
209
210
211
212
# File 'lib/browserctl/workflow.rb', line 202

def self.delegate_unwrap(method_name, extract: nil)
  if extract
    define_method(method_name) do |*args, **kwargs|
      @client.public_send(method_name, @name, *args, **kwargs)[extract]
    end
  else
    define_method(method_name) do |*args, **kwargs|
      unwrap @client.public_send(method_name, @name, *args, **kwargs)
    end
  end
end

Instance Method Details

#click(selector = nil, ref: nil) ⇒ Object



242
243
244
245
246
# File 'lib/browserctl/workflow.rb', line 242

def click(selector = nil, ref: nil)
  with_selector_fallback(:click, selector, ref) do |sel, r|
    @client.click(@name, sel, ref: r)
  end
end

#fill(selector = nil, value = nil, ref: nil) ⇒ Object



236
237
238
239
240
# File 'lib/browserctl/workflow.rb', line 236

def fill(selector = nil, value = nil, ref: nil)
  with_selector_fallback(:fill, selector, ref) do |sel, r|
    @client.fill(@name, sel, value, ref: r)
  end
end

#hover(selector = nil, ref: nil) ⇒ Object



248
249
250
251
252
# File 'lib/browserctl/workflow.rb', line 248

def hover(selector = nil, ref: nil)
  with_selector_fallback(:hover, selector, ref) do |sel, r|
    @client.hover(@name, sel, ref: r)
  end
end

#select(selector = nil, value = nil, ref: nil) ⇒ Object



260
261
262
263
264
# File 'lib/browserctl/workflow.rb', line 260

def select(selector = nil, value = nil, ref: nil)
  with_selector_fallback(:select, selector, ref) do |sel, r|
    @client.select(@name, sel, value, ref: r)
  end
end

#upload(selector = nil, path = nil, ref: nil) ⇒ Object



254
255
256
257
258
# File 'lib/browserctl/workflow.rb', line 254

def upload(selector = nil, path = nil, ref: nil)
  with_selector_fallback(:upload, selector, ref) do |sel, r|
    @client.upload(@name, sel, path, ref: r)
  end
end