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.



202
203
204
# File 'lib/nswtopo/chrome.rb', line 202

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

Instance Method Details

#[](name) ⇒ Object



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

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



212
213
214
215
216
217
218
# File 'lib/nswtopo/chrome.rb', line 212

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



220
221
222
# File 'lib/nswtopo/chrome.rb', line 220

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

#widthObject



224
225
226
227
228
# File 'lib/nswtopo/chrome.rb', line 224

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