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