Я пишу тест функции в Rails, используя RSpec Capybara. По какой-то причине это не элемент по его идентификатору. Я пробовал несколько вещей, чтобы понять, почему это не находит элемент, но ничего не помогло.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
Я сделал некоторые отладки, и когда я смотрю на HTML, который возвращается, я могу видеть param_set_mat_dipoles идентификатор присутствует
(byebug) body.include? "#param_set_mat_dipoles"
true
Но когда я проверяю с в консоли rspec
page.find("#param_set_mat_dipoles")
не может найти элемент.
Я сделал некоторые исследования, и он может найти идентификатор родительского DIV, но когда я проверяю общие элементы число оп (пункт/р) в этой ID это не найдя последнюю 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)' –