Как мне найти полную ссылку в капибаре? - PullRequest
1 голос
/ 23 декабря 2011

В Capybara + Rspec я могу проверить, что ссылка отсутствует:

response.body.should_not have_link("link_content")

Это нормально, но, к сожалению, тест не пройден, когда "link_content" частично соответствует ссылке, например, "this_is_a_long_link_content",Как я могу изменить тест, чтобы он прошел в этом случае?

(то есть совпадение не должно совпадать частично, оно должно совпадать только полностью).

Ответы [ 2 ]

4 голосов
/ 23 декабря 2011

Вы также можете использовать следующий обходной путь:

response.body.should_not have_xpath("//a[normalize-space(text())='link_content']")

Это не зависит от пробелов и, следовательно, немного более гибко, чем подход необработанного HTML.

4 голосов
/ 23 декабря 2011

Из документов:

Если ничего не помогает, вы также можете использовать метод page.html для проверки исходного кода HTML:

Это работает для меня:

page.html.should match('>\s*Log in\s*</a>')
page.html.should_not match('>\s*link_content\s*</a>')

Обратите внимание, что сопоставляемый аргумент может быть регулярным выражением.Это означает, что вы можете сделать решение независимым от пробелов, просто добавив \s*.

...