Как установить язык браузера в огурец / капибара? - PullRequest
3 голосов
/ 20 сентября 2011

Мне бы хотелось, чтобы в зависимости от языка браузера отображался другой язык, и, естественно, я хотел бы проверить, чтобы убедиться, что он работает правильно. Я использую 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".

Кто-нибудь может помочь? Спасибо, Грэм.

Ответы [ 3 ]

3 голосов
/ 20 сентября 2011

Понял!

У меня была правильная линия, проблема была в другом месте.

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"

Шаг "Я - анонимный пользователь" - сначала просто вышел из системы. Казалось бы, язык браузера должен быть установлен до того, как будут предприняты какие-либо другие шаги, которые используют браузер.

2 голосов
/ 26 марта 2015

С Полтергейст :

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

Подробнее: https://github.com/teampoltergeist/poltergeist#manipulating-request-headers

1 голос
/ 20 сентября 2011

Какой драйвер Capybara вы используете? Это работает для Mechanize:

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