Class: Browserctl::Client

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

Instance Method Summary collapse

Constructor Details

#initialize(socket_path = Browserctl.socket_path) ⇒ Client

Returns a new instance of Client.



10
11
12
# File 'lib/browserctl/client.rb', line 10

def initialize(socket_path = Browserctl.socket_path)
  @socket_path = socket_path
end

Instance Method Details

#call(cmd, **params) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/browserctl/client.rb', line 14

def call(cmd, **params)
  result = communicate(JSON.generate({ cmd: cmd }.merge(params)))
  Recording.append(cmd, **params) if result[:ok]
  result
rescue Errno::ENOENT, Errno::ECONNREFUSED
  raise "browserd is not running — start it with: browserd"
end

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

Raises:

  • (ArgumentError)


29
30
31
32
33
# File 'lib/browserctl/client.rb', line 29

def click(name, selector = nil, ref: nil)
  raise ArgumentError, "click: provide selector or ref:" unless selector || ref

  call("click", name: name, selector: selector, ref: ref)
end

#close_page(name) ⇒ Object



25
# File 'lib/browserctl/client.rb', line 25

def close_page(name)           = call("close_page", name: name)

#evaluate(name, expression) ⇒ Object



54
# File 'lib/browserctl/client.rb', line 54

def evaluate(name, expression) = call("evaluate",    name: name, expression: expression)

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

Raises:

  • (ArgumentError)


35
36
37
38
39
# File 'lib/browserctl/client.rb', line 35

def fill(name, selector = nil, value = nil, ref: nil)
  raise ArgumentError, "fill: provide selector or ref:" unless selector || ref

  call("fill", name: name, selector: selector, ref: ref, value: value)
end

#goto(name, url) ⇒ Object



27
# File 'lib/browserctl/client.rb', line 27

def goto(name, url)            = call("goto", name: name, url: url)

#list_pagesObject



26
# File 'lib/browserctl/client.rb', line 26

def list_pages                 = call("list_pages")

#open_page(name, url: nil) ⇒ Object

Convenience wrappers matching CLI command vocabulary



24
# File 'lib/browserctl/client.rb', line 24

def open_page(name, url: nil)  = call("open_page",  name: name, url: url)

#pingObject



55
# File 'lib/browserctl/client.rb', line 55

def ping                       = call("ping")

#screenshot(name, path: nil, full: false) ⇒ Object



41
# File 'lib/browserctl/client.rb', line 41

def screenshot(name, path: nil, full: false) = call("screenshot", name: name, path: path, full: full)

#shutdownObject



56
# File 'lib/browserctl/client.rb', line 56

def shutdown                   = call("shutdown")

#snapshot(name, format: "ai", diff: false) ⇒ Object



43
44
45
# File 'lib/browserctl/client.rb', line 43

def snapshot(name, format: "ai", diff: false)
  call("snapshot", name: name, format: format, diff: diff)
end

#url(name) ⇒ Object



53
# File 'lib/browserctl/client.rb', line 53

def url(name)                  = call("url",         name: name)

#wait_for(name, selector, timeout: 10) ⇒ Object



47
# File 'lib/browserctl/client.rb', line 47

def wait_for(name, selector, timeout: 10) = call("wait_for", name: name, selector: selector, timeout: timeout)

#watch(name, selector, timeout: 30) ⇒ Object



49
50
51
# File 'lib/browserctl/client.rb', line 49

def watch(name, selector, timeout: 30)
  call("watch", name: name, selector: selector, timeout: timeout)
end