Тест Capybara, если страница имеет регулярное выражение - программирование

Тест Capybara, если страница имеет регулярное выражение

Я новичок в RSpec и Capybara, и я пытаюсь проверить, имеет ли на нем время. 12:00 или 14:24 или 08:12 являются хорошими примерами того, что я пытаюсь проверить.

Я использую следующее регулярное выражение:

/^\d{2}:\d{2}/

Я не уверен, как "рассказать это" в capybara, чтобы проверить, содержит ли страница это регулярное выражение.

4b9b3361

Ответ 1

Я бы предположил что-то вроде

page.text.should match(/^\d{2}:\d{2}/)

или с новым синтаксисом RSpec

expect(page.text).to match(/^\d{2}:\d{2}/)

Или вы можете проверить не всю страницу, а некоторый элемент, например

find("span.time").text.should match(/^\d{2}:\d{2}/)

Ответ 2

Я не знаю, является ли это новым поведением, но вы можете просто использовать has_content?:

page.has_content?(/do not have permission/i)

В rspec это будет примерно так:

expect(page).to have_content(/do not have permission/i)

Я нашел это в онлайн-документации для capybara, но он под has_text?, поскольку has_content? является просто псевдонимом.