在Overriding Options - Command Line
从命令行运行 Cypress 时,您可以传递 --config 标志
对于命令行使用
cypress open --config userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0"
对于 package.json 用法(注意字符串中的转义双引号)
"scripts: {
...
"cy:ua-moz": "cypress open --config userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0\""
在设置/配置下的赛普拉斯运行器中检查它 - 它被标记为“从 CLI 参数设置”颜色。
或在测试中以编程方式,Cypress.config()
和Is there a programmatic way to change user agent in Cypress
const userAgents = {
"Firefox": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",
"Opera": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41",
"Safari": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1"
}
userAgents.forEach(ua => {
Cypress.config('userAgent', userAgents[ua]); // set outside of test
// see caveat below
it(`Test with user agent ${ua}`, () => {
// test here
}
}
尽管有些迹象表明此方法存在问题
Not all config values can be changed at all times
在运行测试时无法更改某些配置值。任何不受赛普拉斯直接控制的东西(例如超时、userAgent 或环境变量)都将在运行时被忽略。