2017-02-17 115 views
0

我正在使用RSpec和水豚在Rails编写特性测试。出于某种原因,它不是由它的id元素。我尝试了几件事,看看为什么它没有找到元素,但没有任何帮助。RSpec水豚找不到元素

这里是我的测试

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总数运算单元(段/ 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

我固定的问题。事实证明,在我的观看页面上,如果用户不属于某个特定组,那么它将显示我正在寻找的字段。

实际的代码是确定的。