2017-02-17 7 views
0

私は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]" 
+0

これは推測ですが、 'page.find("#param_set_mat_dipoles "、visible:false)' –

答えて

0

私は問題を修正しました。私の閲覧ページでは、ユーザーが特定のグループに所属していない場合、私が探していたフィールドが表示されることが判明しました。

実際のコードはOKでした。

関連する問題