#ruby-on-rails #seo #rspec #integration-testing #capybara
#ruby-on-rails #seo #rspec #интеграция-тестирование #capybara
Вопрос:
Я изучаю поисковую оптимизацию и хотел бы провести некоторые базовые SEO-тесты на своем сайте rails. Это будет включать в себя такие вещи, как проверка уникальных заголовков, текста alt на изображениях и т. Д.
Прежде чем я смогу это сделать, мне нужно иметь возможность перемещаться по своему сайту. Я могу сделать это вручную, определив все доступные для посещения маршруты, но мне было интересно, есть ли способ автоматизировать это с помощью rspec и capybara? Возможно, я мог бы использовать файл routes или какой-нибудь файл sitemap gem?
Есть предложения? Спасибо
Комментарии:
1. Это и есть Capybara. Вы можете нажимать на ссылки, находить текст, даже запускать javascript (если вы используете что-то вроде Selenium).
2. Да, но как я могу автоматизировать это, чтобы посещать каждую доступную страницу на моем сайте? Я думаю, мне следует изучить синтаксический анализ sitemap или что-то в этом роде.
Ответ №1:
Вот пример проверки представления с использованием rspec:
scenario 'autocompletes contact name', js: true do
visit new_communication_path
fill_in 'communication_contact_id', with: 'Joh'
page.should have_content 'John Doe'
find('#ui-id-2').click
find('#communication_contact_id').value.should == 'John Doe'
find('#contact_autocomplete_target', visible: false).value.should == contact.id.to_s
end
Что он делает:
1) посещает страницу rails (использует firefox в качестве движка)
2) найдите поле и заполните Joh в этом поле
3) проверьте, есть ли на странице слова John Doe
4) щелкните элемент с идентификатором, указанным выше
, и т.д..
Драгоценные камни включают rspec-rails capybara selenium-webdriver
Чтобы посетить каждую страницу, просто повторите процесс, выполнив итерацию по примеру «rails routes»:
Rails.application.routes.routes.to_a.each do |route|
visit route
end
Надеюсь, это поможет.