2017-02-17 4 views
0

Ich schreibe einen Feature-Test in Rails mit RSpec ein Capybara. Aus irgendeinem Grund ist es kein Element von seiner ID. Ich habe mehrere Dinge ausprobiert, um herauszufinden, warum das Element nicht gefunden wird, aber nichts half.RSpec Capybara Element nicht finden

Hier ist mein Test

require 'rails_helper' 

include Warden::Test::Helpers 

feature 'Dipole options checkbox' do 
    before(:each) do 
    @user = FactoryGirl.create(:user) 
    @group = FactoryGirl.create(:group) 
    @user.groups << @group 
    @stack = FactoryGirl.create(:stack, user: @user, group: @group) 
    @param_set = FactoryGirl.create(:param_set, user: @user, group: @group, stack: @stack) 
    end 

    scenario "when check #dipole-options should be visible" do 
    login_as(@user, scope: :user) 
    visit "/param_sets/#{@param_set.id}/edit#box" 

    page.find(:path, "//input[@id='param_set_mat_dipoles']") 

    end 
end 

ich einige Debug getan haben, und wenn ich im HTML aussehen, dass ich die id param_set_mat_dipoles zurückgegeben wird, ist vorhanden sehen

(byebug) body.include? "#param_set_mat_dipoles" 
true 

Aber wenn ich überprüfen, mit in der rspec Konsole

page.find("#param_set_mat_dipoles") 

es kann das Element nicht finden.

Ich habe einige der Forschung getan, und es ist in der Lage, die ID des übergeordneten div zu finden, aber wenn ich die Gesamtzahl op Elemente überprüfen (Absatz/p) in dieser ID zu finden, es wird nicht die letzte 2.

Hat jemand das schon mal? Könnte es sein, dass das Element zutiefst verschachtelt ist, um Capybara nicht zu finden?

PS: Dies ist der XPath, die es erreichen:

path="/html/body/div/div/div[2]/form/div[2]/div[4]/p[7]" 

Es würde die XPath finden, die ich brauche:

path="/html/body/div/div/div[2]/form/div[2]/div[4]/p[9]" 
+0

Dies ist eine Vermutung, aber versuchen Sie es mit 'page.find (" # param_set_mat_dipoles ", sichtbar: false)' –

Antwort

0

ich das Problem behoben. Es stellte sich heraus, dass auf meiner Ansichtsseite, wenn der Benutzer nicht Teil einer bestimmten Gruppe war, das Feld angezeigt wurde, nach dem ich suchte.

Der eigentliche Code war OK.

Verwandte Themen