cs3b/kameleon

Problem with spec 'dsl/see/special_selectors_spec.rb' on Selenium Driver.

Closed this issue · 1 comments

Failures:

  1) #see special selectors in tables when in column when scoped by full text should see full text
     Failure/Error: see "13.00", "2.00", "0.00"
       expected #has_content?("13.00") to return true, got false
     # ./lib/kameleon/dsl/see.rb:9:in `see'
     # ./lib/kameleon/dsl/see.rb:12:in `block in see'
     # ./lib/kameleon/dsl/see.rb:11:in `each'
     # ./lib/kameleon/dsl/see.rb:11:in `see'
     # ./spec/unit/dsl/see/special_selectors_spec.rb:28:in `block (5 levels) in <top (required)>'
     # ./lib/kameleon/user/abstract.rb:61:in `instance_eval'
     # ./lib/kameleon/user/abstract.rb:61:in `block in within'
     # ./lib/kameleon/user/abstract.rb:39:in `within'
     # ./lib/kameleon/user/abstract.rb:60:in `within'
     # ./spec/unit/dsl/see/special_selectors_spec.rb:27:in `block (4 levels) in <top (required)>'

  2) #see special selectors in tables when in column when scoped by full text should see partial text
     Failure/Error: see "13", "2", "0"
       expected #has_content?("13") to return true, got false
     # ./lib/kameleon/dsl/see.rb:9:in `see'
     # ./lib/kameleon/dsl/see.rb:12:in `block in see'
     # ./lib/kameleon/dsl/see.rb:11:in `each'
     # ./lib/kameleon/dsl/see.rb:11:in `see'
     # ./spec/unit/dsl/see/special_selectors_spec.rb:34:in `block (5 levels) in <top (required)>'
     # ./lib/kameleon/user/abstract.rb:61:in `instance_eval'
     # ./lib/kameleon/user/abstract.rb:61:in `block in within'
     # ./lib/kameleon/user/abstract.rb:39:in `within'
     # ./lib/kameleon/user/abstract.rb:60:in `within'
     # ./spec/unit/dsl/see/special_selectors_spec.rb:33:in `block (4 levels) in <top (required)>'

  3) #see special selectors in tables when in column when scoped by partial text should see full text
     Failure/Error: see "13.00", "2.00", "0.00"
       expected #has_content?("13.00") to return true, got false
     # ./lib/kameleon/dsl/see.rb:9:in `see'
     # ./lib/kameleon/dsl/see.rb:12:in `block in see'
     # ./lib/kameleon/dsl/see.rb:11:in `each'
     # ./lib/kameleon/dsl/see.rb:11:in `see'
     # ./spec/unit/dsl/see/special_selectors_spec.rb:42:in `block (5 levels) in <top (required)>'
     # ./lib/kameleon/user/abstract.rb:61:in `instance_eval'
     # ./lib/kameleon/user/abstract.rb:61:in `block in within'
     # ./lib/kameleon/user/abstract.rb:39:in `within'
     # ./lib/kameleon/user/abstract.rb:60:in `within'
     # ./spec/unit/dsl/see/special_selectors_spec.rb:41:in `block (4 levels) in <top (required)>'

  4) #see special selectors in tables when in column when scoped by partial text should see partial text
     Failure/Error: see "13", "2", "0"
       expected #has_content?("13") to return true, got false
     # ./lib/kameleon/dsl/see.rb:9:in `see'
     # ./lib/kameleon/dsl/see.rb:12:in `block in see'
     # ./lib/kameleon/dsl/see.rb:11:in `each'
     # ./lib/kameleon/dsl/see.rb:11:in `see'
     # ./spec/unit/dsl/see/special_selectors_spec.rb:48:in `block (5 levels) in <top (required)>'
     # ./lib/kameleon/user/abstract.rb:61:in `instance_eval'
     # ./lib/kameleon/user/abstract.rb:61:in `block in within'
     # ./lib/kameleon/user/abstract.rb:39:in `within'
     # ./lib/kameleon/user/abstract.rb:60:in `within'
     # ./spec/unit/dsl/see/special_selectors_spec.rb:47:in `block (4 levels) in <top (required)>'

rspec ./spec/unit/dsl/see/special_selectors_spec.rb:26 # #see special selectors in tables when in column when scoped by full text should see full text
rspec ./spec/unit/dsl/see/special_selectors_spec.rb:32 # #see special selectors in tables when in column when scoped by full text should see partial text
rspec ./spec/unit/dsl/see/special_selectors_spec.rb:40 # #see special selectors in tables when in column when scoped by partial text should see full text
rspec ./spec/unit/dsl/see/special_selectors_spec.rb:46 # #see special selectors in tables when in column when scoped by partial text should see partial text

Probably this problem is in file lib/kameleon/user/abstract.rb:

def initialize(rspec_world, options={})
  @rspec_world = rspec_world
  @driver_name = options.delete(:driver)
  @session_name = options.delete(:session_name)
  @options = options
  set_session
  session.instance_eval do
    def within(*args)
      new_scope = if args.size == 1 && Capybara::Node::Base === args.first
                    args.first
                  elsif args.last == :select_multiple
                    case driver
                       when Capybara::Selenium::Driver
                         all(*args[0..-2])
                       when Capybara::RackTest::Driver
                         node = find(*args)
                         native = Nokogiri::HTML.parse(html).xpath(args[1])
                         base = Capybara::RackTest::Node.new(driver, native)
                         ::Capybara::Node::Element.new(self,
                                                       base,
                                                       node.parent,
                                                       node.instance_variable_get(:@selector))
                    end
                  else
                    find(*args)
                  end
      begin
        scopes.push(*new_scope)
        yield
      ensure
        scopes.pop
      end
    end
  end
  yield if block_given?
  after_initialization
end
cs3b commented

require to extend capybara to solve this - for closing