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]"
Dies ist eine Vermutung, aber versuchen Sie es mit 'page.find (" # param_set_mat_dipoles ", sichtbar: false)' –