diff --git a/lib/capybara/node/finders.rb b/lib/capybara/node/finders.rb index ed7883a2..21abea4e 100644 --- a/lib/capybara/node/finders.rb +++ b/lib/capybara/node/finders.rb @@ -114,9 +114,8 @@ module Capybara # def all(*args) query = Capybara::Query.new(*args) - query.xpaths. - map { |path| find_in_base(query, path) }.flatten. - select { |node| query.matches_filters?(node) } + + find_in_base(query, query.xpath).select { |node| query.matches_filters?(node) } end ## diff --git a/lib/capybara/query.rb b/lib/capybara/query.rb index 07b9f10e..d7d635b2 100644 --- a/lib/capybara/query.rb +++ b/lib/capybara/query.rb @@ -25,6 +25,10 @@ module Capybara end end + def xpath + xpaths.first + end + def failure_message(type, node) message = selector.failure_message.call(node, self) if selector.failure_message message ||= options[:message]