Sts
Sts

Reputation: 55

Capybara cannot find element without js:true

Why does Capybara not find an element if I remove js: true (because it's very slow) from my test?

My test:

require 'spec_helper'
Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, browser: :chrome)
end

    feature 'signal trading platform', integration: true do
    
      scenario 'check context' do
     visit '/'
     find('a', text: 'SIGNAL TRADER').click
     end 
    end

=>
    Capybara::ElementNotFound:
        Unable to find css "a" with text

Upvotes: 1

Views: 226

Answers (1)

Thomas Walpole
Thomas Walpole

Reputation: 49950

Removing the js: true metadata means (most likely) your test is running with the rack_test driver. The rack_test driver doesn't process JS at all and doesn't process most CSS. Therefore if the test worked before you removed the js: true metadata, either your page loading is dependent on javascript or the text was being affected by CSS which is no longer processed ( text-transform, etc). Without seeing the actual HTML it's impossible to give a more specific answer.

Upvotes: 2

Related Questions