如何在Cypress.io(电子/铬)中设置浏览器的语言?

Dav*_*urt 6 configuration internationalization lang e2e-testing cypress

我的问题是关于配置赛普拉斯以某种语言启动浏览器实例。

为了:

  • 对本地化(i18n)文本标签进行断言?
  • 检查i18n功能(在语言之间切换)
  • 例如,在本地计算机上,浏览器默认为fr_FR,而在CI / CD VM上默认为en_US?,则绕过持续集成(CI / CD)问题。

我尝试了(没有成功):

  • LANGUAGE=en_US从终端调用中使用
  • 使用浏览器的API插件(请参见赛普拉斯的浏览器启动API文档

谢谢!

Hub*_*ber 8

要在浏览器中设置语言以及请求(这是我在测试中必须做的事情),以下内容对我有用:

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',
    },
});
Run Code Online (Sandbox Code Playgroud)


Met*_*ean 5

格列布·巴赫穆托夫:

你在 cy.visit 期间使用onBeforeLoad类似的东西设置它Object.defineProperty(navigator, 'language', { value: 'de-GE' })

源代码:https : //gitter.im/cypress-io/cypress? at =5d61408a07d1ff39f8769545

  • 你可以尝试使用 `cy.visit('/', { onBeforeLoad: (_contentWindow) => { Object.defineProperty(_contentWindow.navigator, 'language', { value: 'fr-FR' }) } })` (2认同)