Class: NSWTopo::Chrome::Node

Inherits:
Object
  • Object
show all
Defined in:
lib/nswtopo/chrome.rb

Instance Method Summary collapse

Constructor Details

#initialize(browser, selector) ⇒ Node

Returns a new instance of Node.



194
195
196
# File 'lib/nswtopo/chrome.rb', line 194

def initialize(browser, selector)
  @browser, @node_id = browser, browser.query_selector_node_id(selector)
end

Instance Method Details

#[](name) ⇒ Object



198
199
200
201
202
# File 'lib/nswtopo/chrome.rb', line 198

def [](name)
  @browser.command("DOM.getAttributes", nodeId: @node_id).fetch("attributes").each_slice(2).to_h.fetch(name.to_s)
rescue KeyError
  raise Error
end

#[]=(name, value) ⇒ Object



204
205
206
207
208
209
210
# File 'lib/nswtopo/chrome.rb', line 204

def []=(name, value)
  if value.nil?
    @browser.command "DOM.removeAttribute", nodeId: @node_id, name: name
  else
    @browser.command "DOM.setAttributeValue", nodeId: @node_id, name: name, value: value
  end
end

#value=(value) ⇒ Object



212
213
214
# File 'lib/nswtopo/chrome.rb', line 212

def value=(value)
  @browser.command "DOM.setNodeValue", nodeId: @node_id + 1, value: value
end

#widthObject



216
217
218
219
220
# File 'lib/nswtopo/chrome.rb', line 216

def width
  @browser.command("DOM.getBoxModel", nodeId: @node_id).fetch("model").fetch("content").each_slice(2).map(&:first).minmax.reverse.inject(&:-)
rescue KeyError
  raise Error
end