Капибара: Как проверить таблицу стилей страницы?
Я хочу иметь возможность тестировать правильную замену таблицы стилей в моем наборе тестов. В этом посте о тестировании заголовка страницы с помощью Capybara я подумал, что смогу протестировать любой link
теги в head
раздел страницы. Но, похоже, я ошибаюсь.
С таким шагом:
save_and_open_page
page.should have_xpath("//link") # just something as simple as this, first.
save_and_open_page
генерирует такой HTML-код (для краткости некоторые вещи убраны):
<head>
...
<link href="/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css?1323572998" type="text/css" class="jquery-styler" rel="stylesheet">
...
</head>
Но я получаю эту ошибку:
expected xpath "//link" to return something (RSpec::Expectations::ExpectationNotMetError)
Учитывая все это, как я могу проверить таблицу стилей?
Спасибо!
2 ответа
Если вы хотите проверить, существует ли CSS-файл на странице, вы можете сделать следующее:
page.should have_xpath("//link[contains(@href, 'style.css')]")
Вот и проверим, есть ли <link>
элементы, в которых href
атрибут содержит style.css
, Ошибка об "ожидаемом xpath вернуть что-то" означает, что предоставленный вами XPath на самом деле не существует - почему он думает, что я не уверен, так как у вас есть совершенно действительный <link>
тег в предоставленном вами HTML.
Когда я проверяю css, я делаю что-то вроде
expect(page.body).to include('/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css')