如何在Cucumber / Capybara中设置浏览器语言?

时间:2011-09-20 07:11:05

标签: ruby-on-rails cucumber capybara

我希望根据浏览器语言显示不同的语言,我自然会测试以确保它正常工作。我正在使用Cucumber和Capybara,Gem版本分别为1.0.6和1.1.1。

我在网上找到了一些建议,但到目前为止还没有任何建议。我已经尝试了以下(单独)但没有成功。

page.driver.language = language
header "Accept-Language", language
page.driver.header 'Accept-Language', language

语言设置为“en”或“fr”。

有人可以帮忙吗?谢谢,Graeme。

3 个答案:

答案 0 :(得分:3)

知道了!

我有正确的路线,问题出在其他地方。

page.driver.header 'Accept-Language', language

这很好用,问题是我的情景如下。

Scenario:
  Given I am an anonymous user
  And the browser language is fr
  Then I should see "Bonjour"

应该是

Scenario:
  Given the browser language is fr
  And I am an anonymous user
  Then I should see "Bonjour"

“我是匿名用户”步骤只是先退出。在使用浏览器的任何其他步骤之前,似乎必须设置浏览器语言。

答案 1 :(得分:2)

使用poltergeist

page.driver.add_headers('Accept-Language' => 'fr')

更多详情:https://github.com/teampoltergeist/poltergeist#manipulating-request-headers

答案 2 :(得分:1)

你使用的是什么Capybara司机?这适用于Mechanize:

When /^I set my browser language to French$/ do
    page.driver.agent.request_headers['Accept-Language'] = 'fr'
end