RSpec 水豚找不到元素
RSpec Capybara not finding element
我正在 Rails 使用 RSpec 水豚编写功能测试。由于某种原因,它不是 id 的元素。我已经尝试了几种方法来了解为什么找不到元素,但没有任何帮助。
这是我的测试
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
我做了一些调试,当我查看返回的 HTML 时,我可以看到 ID param_set_mat_dipoles 存在
(byebug) body.include? "#param_set_mat_dipoles"
true
但是当我在 rspec 控制台中检查时
page.find("#param_set_mat_dipoles")
找不到元素。
我做了一些研究,它能够找到父级 div 的 ID,但是当我检查该 ID 中的操作元素总数 (paragraph/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]"
我解决了这个问题。事实证明,在我的视图页面上,如果用户不属于某个组,它会显示我正在寻找的字段。
实际代码没问题。
我正在 Rails 使用 RSpec 水豚编写功能测试。由于某种原因,它不是 id 的元素。我已经尝试了几种方法来了解为什么找不到元素,但没有任何帮助。
这是我的测试
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
我做了一些调试,当我查看返回的 HTML 时,我可以看到 ID param_set_mat_dipoles 存在
(byebug) body.include? "#param_set_mat_dipoles"
true
但是当我在 rspec 控制台中检查时
page.find("#param_set_mat_dipoles")
找不到元素。
我做了一些研究,它能够找到父级 div 的 ID,但是当我检查该 ID 中的操作元素总数 (paragraph/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]"
我解决了这个问题。事实证明,在我的视图页面上,如果用户不属于某个组,它会显示我正在寻找的字段。
实际代码没问题。