Подтвердить что ты не робот

Capybara-webkit пытается открыть example.com

Я использую 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
4b9b3361

Ответ 1

Попробуйте вместо этого использовать visit products_path. Они не рекомендуют использовать абсолютные URL-адреса в разделе "Gotchas" README.

Ответ 2

Для меня было много кроссовки "gotcha" (и я использовал Capybara с Rspec). Первоначально в спецификации я имел:

visit "foos/5"

Это отлично работало с Rack::Test, но когда я захотел переключиться на драйвер webkit для проверки js-взаимодействий, я получил это исключение (не удалось загрузить URL: file:///products (Capybara:: Driver:: Webkit:: WebkitInvalidResponseError)).

Мне нужно было изменить путь, который я прошел для посещения, например:

visit "/foos/5"

Сукчес!!

Ответ 3

Вот еще одна потенциальная возможность, отправленная для других, которые могут иметь эту проблему. Я тестировал кеширование действий, а генерация ключей Rails выглядит как "views/www.example.com/products". Это происходит, даже если вы используете product_path как url. Это может привести к необходимости задавать имя вашего сервера, чтобы вы могли заранее знать, какой ключ кеша ожидать.