all_unfiltered is no longer needed
This commit is contained in:
parent
789f5c71b2
commit
9ba7998a5b
|
@ -1,13 +1,4 @@
|
|||
module Capybara
|
||||
class Document < Node
|
||||
def initialize(session)
|
||||
@session = session
|
||||
end
|
||||
|
||||
def all_unfiltered(locator)
|
||||
XPath.wrap(locator).paths.map do |path|
|
||||
driver.find(path)
|
||||
end.flatten
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -77,9 +77,7 @@ class Capybara::Driver::Celerity < Capybara::Driver::Base
|
|||
node.fire_event(event.to_s)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def all_unfiltered(locator)
|
||||
def find(locator)
|
||||
noko_node = Nokogiri::HTML(driver.body).xpath(node.xpath).first
|
||||
all_nodes = noko_node.xpath(locator).map { |n| n.path }.join(' | ')
|
||||
driver.find(all_nodes)
|
||||
|
|
|
@ -73,12 +73,12 @@ class Capybara::Driver::Selenium < Capybara::Driver::Base
|
|||
node.displayed? and node.displayed? != "false"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def all_unfiltered(locator)
|
||||
def find(locator)
|
||||
node.find_elements(:xpath, locator).map { |n| self.class.new(driver, n) }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def type
|
||||
self[:type]
|
||||
end
|
||||
|
|
|
@ -1,24 +1,12 @@
|
|||
module Capybara
|
||||
class Element < Node
|
||||
def initialize(session, driver_node)
|
||||
@session = session
|
||||
@driver_node = driver_node
|
||||
end
|
||||
|
||||
# TODO: maybe we should explicitely delegate?
|
||||
def method_missing(*args)
|
||||
@driver_node.send(*args)
|
||||
@base.send(*args)
|
||||
end
|
||||
|
||||
def respond_to?(method)
|
||||
super || @driver_node.respond_to?(method)
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def all_unfiltered(locator)
|
||||
XPath.wrap(locator).paths.map do |path|
|
||||
@driver_node.find(path)
|
||||
end.flatten
|
||||
super || @base.respond_to?(method)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
module Capybara
|
||||
class Node
|
||||
attr_reader :session
|
||||
attr_reader :session, :base
|
||||
|
||||
def initialize(session, base)
|
||||
@session = session
|
||||
@base = base
|
||||
end
|
||||
|
||||
def click_link_or_button(locator)
|
||||
msg = "no link or button '#{locator}' found"
|
||||
|
@ -189,7 +194,9 @@ module Capybara
|
|||
end
|
||||
locator = XPath.from_css(locator) if kind == :css
|
||||
|
||||
results = all_unfiltered(locator)
|
||||
results = XPath.wrap(locator).paths.map do |path|
|
||||
base.find(path)
|
||||
end.flatten
|
||||
|
||||
if options[:text]
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ module Capybara
|
|||
def_delegator :driver, :source
|
||||
|
||||
def document
|
||||
Capybara::Document.new(self)
|
||||
Capybara::Document.new(self, driver)
|
||||
end
|
||||
|
||||
def method_missing(*args)
|
||||
|
|
Loading…
Reference in New Issue