It seems like changing the HTTP_ACCEPT_LANGUAGE
is not possible for a headless chrome.
- On Ubuntu the headless Chrome derives the Accept-Language from the operation system
- Adding the option
options.add_argument('--lang=de')
to theCapybara::Selenium::Driver
has no effect - Adding the preference
options.add_preference('intl.accept_languages', 'de')
to theCapybara::Selenium::Driver
has only effects if the--headless
option is skipped (see bug ticket #775911 Show archive.org snapshot ) - Changing the request header in Capybara only works without Selenium
You still can add logic to your application code that helps to modify the Accept-Language in tests. Here is an example for a Rails application with Cucumber integration tests:
class ApplicationController
OVERRIDE_HTTP_ACCEPT_LANGUAGE = nil
def accept_language
OVERRIDE_HTTP_ACCEPT_LANGUAGE || request.env['HTTP_ACCEPT_LANGUAGE'].to_s
end
end
# Override the Accept-Language header for all Cucumber scenarios
Before do
stub_const('ApplicationController::OVERRIDE_HTTP_ACCEPT_LANGUAGE', 'de')
end
Posted by Emanuel to makandra dev (2021-07-19 12:10)