Class: Browserctl::Client
- Inherits:
-
Object
- Object
- Browserctl::Client
- Defined in:
- lib/browserctl/client.rb
Instance Method Summary collapse
- #call(cmd, **params) ⇒ Object
- #click(name, selector = nil, ref: nil) ⇒ Object
- #close_page(name) ⇒ Object
- #evaluate(name, expression) ⇒ Object
- #fill(name, selector = nil, value = nil, ref: nil) ⇒ Object
- #goto(name, url) ⇒ Object
-
#initialize(socket_path = Browserctl.socket_path) ⇒ Client
constructor
A new instance of Client.
- #list_pages ⇒ Object
-
#open_page(name, url: nil) ⇒ Object
Convenience wrappers matching CLI command vocabulary.
- #ping ⇒ Object
- #screenshot(name, path: nil, full: false) ⇒ Object
- #shutdown ⇒ Object
- #snapshot(name, format: "ai", diff: false) ⇒ Object
- #url(name) ⇒ Object
- #wait_for(name, selector, timeout: 10) ⇒ Object
- #watch(name, selector, timeout: 30) ⇒ Object
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
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
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_pages ⇒ Object
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) |
#ping ⇒ Object
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) |
#shutdown ⇒ Object
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 |