diff --git a/lib/capybara/driver/webkit/node.rb b/lib/capybara/driver/webkit/node.rb
index 574db03..0876eb3 100644
--- a/lib/capybara/driver/webkit/node.rb
+++ b/lib/capybara/driver/webkit/node.rb
@@ -1,5 +1,9 @@
class Capybara::Driver::Webkit
class Node < Capybara::Driver::Node
+
+ class ElementNotDisplayedError < StandardError
+ end
+
NBSP = "\xC2\xA0"
NBSP.force_encoding("UTF-8") if NBSP.respond_to?(:force_encoding)
@@ -46,7 +50,11 @@ class Capybara::Driver::Webkit
end
def click
- invoke "click"
+ if visible?
+ invoke "click"
+ else
+ raise ElementNotDisplayedError, "This element is not visible so it may not be interacted with"
+ end
end
def drag_to(element)
diff --git a/spec/driver_spec.rb b/spec/driver_spec.rb
index 467a803..6767791 100644
--- a/spec/driver_spec.rb
+++ b/spec/driver_spec.rb
@@ -639,6 +639,7 @@ describe Capybara::Driver::Webkit do
});
Next
+ Not displayed