lib/capybara/poltergeist/client/agent.coffee in poltergeist-1.8.0 vs lib/capybara/poltergeist/client/agent.coffee in poltergeist-1.8.1
- old
+ new
@@ -105,17 +105,17 @@
find: (method, selector) ->
@agent.find(method, selector, @element)
isObsolete: ->
obsolete = (element) =>
- if element.parentNode?
- if element.parentNode == document
- false
+ if (parent = element.parentNode)?
+ if parent == document
+ return false
else
- obsolete element.parentNode
+ obsolete parent
else
- true
+ return true
obsolete @element
changed: ->
event = document.createEvent('HTMLEvents')
event.initEvent('change', true, false)
@@ -254,13 +254,11 @@
true
tagName: ->
@element.tagName
- isVisible: (element) ->
- element ||= @element
-
+ isVisible: (element = @element) ->
while (element)
style = window.getComputedStyle(element)
return false if style.display == 'none' or
style.visibility == 'hidden' or
parseFloat(style.opacity) == 0
@@ -310,10 +308,11 @@
offset.left += rect.left + parseInt(style.getPropertyValue("padding-left"), 10)
offset
position: ->
- rect = @element.getClientRects()[0]
+ # Elements inside an SVG return underfined for getClientRects???
+ rect = @element.getClientRects()[0] || @element.getBoundingClientRect()
throw new PoltergeistAgent.ObsoleteNode unless rect
frameOffset = this.frameOffset()
pos = {
top: rect.top + frameOffset.top,