Capybara-webkit пытается открыть example.com - PullRequest
14 голосов
/ 24 декабря 2011

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

Ответы [ 3 ]

13 голосов
/ 24 декабря 2011

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

1 голос
/ 17 сентября 2012

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

1 голос
/ 29 февраля 2012

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

visit "foos/5"

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

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

visit "/foos/5"

Сукчес !!

...