我的问题是关于配置Cypress以使用某种语言启动浏览器实例。
为了:
fr_FR
,在CI / CD VM上默认为en_US
?我尝试了(没有成功):
LANGUAGE=en_US
谢谢!
答案 0 :(得分:1)
来自格莱布·巴穆托夫(Gleb Bahmutov):
您在cy.visit期间使用
onBeforeLoad
和Object.defineProperty(navigator, 'language', { value: 'de-GE' })
来设置它
src:https://gitter.im/cypress-io/cypress?at=5d61408a07d1ff39f8769545
答案 1 :(得分:1)
导航器有两个郎道具:
navigator.language指的是navigator.languages的第一个元素 但是某些库会检查navigator.languages [0]而不是navigator.language,因此如果同时设置这两个属性,则效果更好
onBeforeLoad: (window, ...args) => {
Object.defineProperty(window.navigator, 'language', { value: 'en-GB' });
Object.defineProperty(window.navigator, 'languages', ['en-GB']);
ref:https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage/languages
答案 2 :(得分:0)
要在浏览器中设置语言以及请求语言(这是我为测试做的事情),以下对我有用:
cy.visit('url', {
onBeforeLoad(win) {
Object.defineProperty(win.navigator, 'language', { value: 'de-DE' });
Object.defineProperty(win.navigator, 'languages', { value: ['de'] });
Object.defineProperty(win.navigator, 'accept_languages', { value: ['de'] });
},
headers: {
'Accept-Language': 'de',
},
});
答案 3 :(得分:0)
在support / index.js
Cypress.on('window:before:load', window => {
Object.defineProperty(window.navigator, 'language', { value: 'fr' });
});