Having a non-english desktop environment, we need to switch locales
e.g. for localization/ internationalization testing
solved by using Playwright’s local option for switching languages within a new browser session
session(
'emulate english browser',
{ /* Playwright specific option */ locale: 'en-US' },
() => {...})
Sample:
// this works for Playwright only
Scenario(
'use preferred browser language (navigator.locale) to rediect the url, en -> /',
(I) => {
// switch browser to english localizaton
// set browser local to english see https://github.com/microsoft/playwright/blob/master/docs/api.md
session(
'english browser',
{ /* Playwright specific option */ locale: 'en-US' },
() => {
// in case language detection relies on the request header vs navigator.language(s)
I.haveRequestHeaders(
'Accept-Language',
'en-US, de;q=0.9, fr;q=0.8, es;q=0.7, *;q=0.5'
)
I.amOnPage('/')
I.see('English') // language picker shows english
I.dontSeeInCurrentUrl('/de') // not redirected to german url
I.dontSee('Deutsch') // language picker does not show german
}
)
}
)
Thanks to HansHammel for the recipe!
Taken from https://github.com/codecept-js/CodeceptJS/issues/2331