首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cypress - userAgent开关

Cypress - userAgent开关
EN

Stack Overflow用户
提问于 2022-03-14 20:56:05
回答 1查看 81关注 0票数 1

我无法使用配置文件更改/重写userAgent。我的柏木:

代码语言:javascript
复制
env object: {
    "platform" : "mobile"
}

我的插件/index.js

代码语言:javascript
复制
module.exports = (on, options, config) => {
.
.
several on()s
.
.

on(config => {
    if (config.env.platform === 'desktop') {
      config.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36'
    } else if (config.env.platform === 'mobile') {
      config.userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1'
    }
    return config
  }) 
}

错误是: Error:注册插件时必须传递一个有效的事件名。

我完全理解它,我无法在运行时更改它,但在此之前,通过配置应该可以工作。配置被传递到module.export中,所以我一无所知。我错过了什么?

注意: Viewport不是一个选项,我需要使用userAgent和cy.visit()头信息修改是不建议的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-14 21:07:46

原则看起来不错,你应该能够在插件中改变用户代理。

但是语法是错误的,on()正在捕获一个事件,它需要一个事件名参数:on('<event>', config => {

但是您并不真正需要或不需要一个事件,只需修改配置内联即可

代码语言:javascript
复制
module.exports = (on, options, config) => {

  ...

  if (config.env.platform === 'desktop') {
    config.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36'
  } 

  if (config.env.platform === 'mobile') {
    config.userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1'
  }

  return config
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71474162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档