私はCappecaraをRSpecで使ってRailsに機能テストを書いています。何らかの理由で、それはidではない要素です。私は要素を見つけられないが何も助けなかった理由を見るためにいくつか試しました。ここで RSpec Capybaraが要素を見つけられない
は、私はいくつかのデバッグを行っている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
私のテストであると私は私がID param_set_mat_dipolesを見ることができます返されたHTMLを見たとき
(byebug) body.include? "#param_set_mat_dipoles"
true
を存在しているしかし、私はしてチェックするときrspecコンソールで
page.find("#param_set_mat_dipoles")
要素を見つけることができません。
私はいくつかの研究を行ってきた、親のdivのIDを見つけることができますが、私はそのIDでの総数OP要素(段落/ p)をチェックするときには、最後の2
を見つけていません誰もこれを前に持っていますか?それは要素が深くカピバラにネストすることができますそれを見つけることができますか?
PS:これは達することができるのXPathです:
path="/html/body/div/div/div[2]/form/div[2]/div[4]/p[7]"
それは私が必要なXPathを見つけるだろう:
path="/html/body/div/div/div[2]/form/div[2]/div[4]/p[9]"
これは推測ですが、 'page.find("#param_set_mat_dipoles "、visible:false)' –