diff --git a/lib/capybara/driver/webkit/node.rb b/lib/capybara/driver/webkit/node.rb index 0876eb3..ffe58d2 100644 --- a/lib/capybara/driver/webkit/node.rb +++ b/lib/capybara/driver/webkit/node.rb @@ -37,6 +37,7 @@ class Capybara::Driver::Webkit end def select_option + check_visibility(self) invoke "selectOption" end @@ -50,14 +51,13 @@ class Capybara::Driver::Webkit end def click - if visible? - invoke "click" - else - raise ElementNotDisplayedError, "This element is not visible so it may not be interacted with" - end + check_visibility(self) + invoke "click" end def drag_to(element) + check_visibility(self) + check_visibility(element) invoke 'dragTo', element.native end @@ -126,5 +126,9 @@ class Capybara::Driver::Webkit def multiple_select? self.tag_name == "select" && self["multiple"] == "multiple" end + + def check_visibility(element) + raise(ElementNotDisplayedError, "This element is not visible so it may not be interacted with") unless element.visible? + end end end diff --git a/spec/driver_spec.rb b/spec/driver_spec.rb index 6767791..100f697 100644 --- a/spec/driver_spec.rb +++ b/spec/driver_spec.rb @@ -614,10 +614,13 @@ describe Capybara::Driver::Webkit do
Change me
Push me
Release me
+ +