Ответ 1
Попробуйте вместо этого использовать visit products_path
. Они не рекомендуют использовать абсолютные URL-адреса в разделе "Gotchas" README.
Я использую capybara, capybara-webkit, capybara-screenshot вместе с огурцом. (Ruby 1.9.3, Rails 3.1.3) и Capybara.javascript_driver = :webkit
также установлен env.rb
К сожалению, запуск спецификации огурца с помощью @javascript
никогда не удастся по какой-то причине, а скриншоты с ошибкой просто захватят example.com.
URL-адрес, который я фактически пытаюсь открыть, генерируется с результатом маршрутизатора rails для одной из моих моделей, например. с visit products_url
Итак, как я могу избежать того, что он заканчивает запрос example.com?
Любой вход очень приветствуется.
Просто потому, что комментарий испорчен - здесь я нашел решение:
Capybara.run_server = true
Capybara.server_port = 7787
Before '@javascript' do
Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}"
end
Попробуйте вместо этого использовать visit products_path
. Они не рекомендуют использовать абсолютные URL-адреса в разделе "Gotchas" README.
Для меня было много кроссовки "gotcha" (и я использовал Capybara с Rspec). Первоначально в спецификации я имел:
visit "foos/5"
Это отлично работало с Rack::Test
, но когда я захотел переключиться на драйвер webkit
для проверки js-взаимодействий, я получил это исключение (не удалось загрузить URL: file:///products (Capybara:: Driver:: Webkit:: WebkitInvalidResponseError)).
Мне нужно было изменить путь, который я прошел для посещения, например:
visit "/foos/5"
Сукчес!!
Вот еще одна потенциальная возможность, отправленная для других, которые могут иметь эту проблему. Я тестировал кеширование действий, а генерация ключей Rails выглядит как "views/www.example.com/products". Это происходит, даже если вы используете product_path как url. Это может привести к необходимости задавать имя вашего сервера, чтобы вы могли заранее знать, какой ключ кеша ожидать.