Class: Culerity::RemoteBrowserProxy

Inherits:
RemoteObjectProxy show all
Defined in:
lib/culerity/remote_browser_proxy.rb

Instance Method Summary collapse

Methods inherited from RemoteObjectProxy

#exit, #id, #inspect, #method_missing, #respond_to?, #send_remote

Constructor Details

#initialize(io, browser_options = {}) ⇒ RemoteBrowserProxy

Returns a new instance of RemoteBrowserProxy.



3
4
5
6
7
8
9
# File 'lib/culerity/remote_browser_proxy.rb', line 3

def initialize(io, browser_options = {})
  @io = io
  #sets the remote receiver to celerity for the new_browser message.
  @remote_object_id = "celerity".inspect 
  #celerity server will create a new browser which shall receive the remote calls from now on.
  @remote_object_id = new_browser(browser_options).inspect
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Culerity::RemoteObjectProxy

Instance Method Details

#confirm(bool, &block) ⇒ Object

Specify whether to accept or reject all confirm js dialogs for the code in the block that’s run.



52
53
54
55
56
57
58
# File 'lib/culerity/remote_browser_proxy.rb', line 52

def confirm(bool, &block)
  blk = "lambda { #{bool} }"
  
  self.send_remote(:add_listener, :confirm) { blk }
  block.call
  self.send_remote(:remove_listener, :confirm, lambda {blk})
end

#wait_until(time_to_wait = 30, &block) ⇒ Object

Calls the block until it returns true or time_to_wait is reached. time_to_wait is 30 seconds by default

Returns true upon success Raises RuntimeError when time_to_wait is reached.



18
19
20
21
22
23
24
25
26
27
# File 'lib/culerity/remote_browser_proxy.rb', line 18

def wait_until time_to_wait=30, &block
  time_limit = Time.now + time_to_wait
  until block.call 
    if Time.now > time_limit
      raise "wait_until timeout after #{time_to_wait} seconds"
    end
    sleep 0.1
  end
  true
end

#wait_while(time_to_wait = 30, &block) ⇒ Object

Calls the block until it doesn’t return true or time_to_wait is reached. time_to_wait is 30 seconds by default

Returns true upon success Raises RuntimeError when time_to_wait is reached.



36
37
38
39
40
41
42
43
44
45
# File 'lib/culerity/remote_browser_proxy.rb', line 36

def wait_while time_to_wait=30, &block
  time_limit = Time.now + time_to_wait
  while block.call
    if Time.now > time_limit
      raise "wait_while timeout after #{time_to_wait} seconds"
    end
    sleep 0.1
  end
  true
end