Так что я просто столкнулся с подобным, и вот что я думаю:
Это зависит от того, какой код вы здесь не указали, от того, как вы посещаете страницу. Я пишу спецификации запроса rspec.
Если я получу страницу с собственным rspec:
get '/some/path'
тогда response.body.should have_selector работает, как вы говорите, но page.should не работает.
Чтобы заставить 'страницу' Capybara работать (и чтобы взаимодействия Capybara, такие как click_button или fill_in работали), вместо извлечения с помощью rspec 'get', вам нужно получить с помощью Capybara 'visit':
visit '/some/path'
page.should have_selector("works")
'page', метод капибары, устанавливается только при использовании метода 'посещения', метода капибары.
Это сбивает с толку все смешивание и сопоставление различных библиотек, участвующих в тестировании рельсов.