改变黄瓜情景中的硒域/子域

时间:2010-04-27 00:19:57

标签: selenium subdomain cucumber webrat

所以,我有一个Rails webapp,它使用子域将admin官方功能与使用subdomain-fu的公共功能分开。 因此,有两个网址(例如admin.example.comwww.example.com)中包含的功能(我想测试!)。我想要一些针对管理域运行的场景,以及一些针对www域的场景。

我的问题是我无法弄清楚如何在启动后的任何时候更改selenium使用的域。我可以在我的env.rb中输入这样的内容:

Webrat.configure do |config|
  config.mode = :selenium
  config.application_address = "admin.example.com"
end

它会起作用,但仅适用于需要管理域的场景。如果我尝试这样的话:

host! "www.example.com"

在我的步骤中,好吧它似乎被selenium忽略了,继续使用“admin.example.com”

有什么想法吗?或者,如果它不可能,任何解决方法的想法?

2 个答案:

答案 0 :(得分:1)

我没有使用Webrat工作,但使用Cabybara以下工作对我来说。

Given /^I visit subdomain "(.+)"$/ do |sub|
  # host! "#{sub}.example.com" #for webrat
  Capybara.default_host = "#{sub}.example.com" #for Rack::Test
  Capybara.app_host = "http://#{sub}.example.com:9887" if Capybara.current_driver == :selenium

  ################################################################################
  # As far as I know, you have to put all the {sub}.example.com entries that you're
  # using in your /etc/hosts file for the Culerity tests. This didn't seem to be
  # required for Rack::Test
  ################################################################################
end

答案 1 :(得分:0)

我从未使用过webrat,但是在正常的测试中,如果你要打开一条完整的路径而不是相对路径。

所以

selenium.open("http://foo/bar");将使测试转到完整网址