Капибара: Как проверить таблицу стилей страницы? - PullRequest
5 голосов
/ 11 декабря 2011

Я хочу иметь возможность проверить правильную замену таблицы стилей в моем наборе тестов. В этом посте о проверке заголовка страницы с использованием 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 ]

4 голосов
/ 07 сентября 2012

Если вы хотите проверить, существует ли CSS-файл на странице, вы можете сделать следующее:

page.should have_xpath("//link[contains(@href, 'style.css')]")

Это проверит, есть ли элементы <link>, в которых атрибут href содержит style.css. Ошибка об «ожидаемом xpath что-то вернуть» означает, что указанный вами XPath на самом деле не существует - почему он так думает, я не уверен, так как у вас есть совершенно правильный тег <link> в предоставленном вами HTML .

1 голос
/ 14 декабря 2015

Когда я проверяю css, я делаю что-то вроде

expect(page.body).to include('/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css')

...