在使用Poltergeist运行Capybara时,如何获取当前主机名和端口?

时间:2013-07-04 00:05:41

标签: ruby-on-rails-3 capybara poltergeist

我有一个测试程序,它通过向rails服务器发送大块数据来模仿用户的iOS设备。该程序在测试之外工作正常。在测试中,程序会立即超时,因为它无法找到服务器。

我的配置,在env.rb中:

require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Capybara.server_port = 3123
Capybara.app_host = "http://0.0.0.0:3123"

在测试中,我尝试过像

这样的事情
puts Capybara.current_session.current_host
puts Capybara.current_session.current_url

等等,但这些都是空白的。这样做的:

放入Capybara.current_session

产生一个内存地址,所以我知道当前的会话正在运行。

这是在宝石文件中使用Capybara设置的:

gem 'capybara', '~> 2.0.2

我已经看到了几个基于此的问题,但他们的答案对我不起作用。具体来说,Capybara似乎没有像我指定的那样设置当前主机或url,也不是实际允许我查看当前会话的内容。那么我该如何解决这个问题并指定一个特定的端口和网址?

2 个答案:

答案 0 :(得分:16)

对于水豚< 2.0:

Capybara.current_session.driver.rack_server.host
Capybara.current_session.driver.rack_server.port

Capybara 2.0:

Capybara.current_session.server.host
Capybara.current_session.server.port

我在这里找到答案:Cucumber / Capybara -- how to get the host and port of the current execution

答案 1 :(得分:1)

Capybara.current_session.driver.server.port