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,