Mobile 如何以编程方式在Cypress中设置不同的UserAgent

Mobile 如何以编程方式在Cypress中设置不同的UserAgent,mobile,browser,cypress,ui-automation,user-agent,Mobile,Browser,Cypress,Ui Automation,User Agent,我有一个在不同的手机/平板电脑浏览器中运行cypress测试的用例。我确实通过配置文件阅读了有关在cypress中设置userAgent的内容,但这将在配置文件中设置 我正在寻找通过CLI或运行时设置UserAgent的方法…这意味着我希望为不同的UserAgent运行相同的测试。有人处理过这个用例吗?在这种情况下,如何设置userAgent 谢谢, Saahith您可以使用cypress\ucode>覆盖cypress.json文件中的现有配置值。你可以看看这里的房间 例如,如果在cypres

我有一个在不同的手机/平板电脑浏览器中运行cypress测试的用例。我确实通过配置文件阅读了有关在cypress中设置userAgent的内容,但这将在配置文件中设置

我正在寻找通过CLI或运行时设置UserAgent的方法…这意味着我希望为不同的UserAgent运行相同的测试。有人处理过这个用例吗?在这种情况下,如何设置userAgent

谢谢,
Saahith

您可以使用
cypress\ucode>覆盖
cypress.json
文件中的现有配置值。你可以看看这里的房间

例如,如果在
cypress.json
文件中已经设置了一个userAgent,但是为了执行测试,您需要一个不同的userAgent,那么您可以执行以下命令:

cypress_userAgent="value" npx cypress run

从命令行运行Cypress时,可以传递--config标志

对于命令行用法

cypress open--config userAgent=“Mozilla/5.0(Macintosh;英特尔Mac OS X.y;rv:42.0)Gecko/20100101 Firefox/42.0”
对于package.json用法(注意字符串中转义的双引号)

“脚本:{
...
“cy:ua moz”:“cypress open--config userAgent=\”Mozilla/5.0(Macintosh;英特尔Mac OS X.y;rv:42.0)Gecko/20100101 Firefox/42.0“
在设置/配置下的Cypress runner中检查它-它用“从CLI参数设置”颜色标记


或者在测试中编程

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,如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,如Mac OS X)AppleWebKit/605.1.15(KHTML,如Gecko)版本/13.1.1 Mobile/15E148 Safari/604.1”
}
userAgents.forEach(ua=>{
config('userAgent',userAgents[ua]);//在测试之外设置
//见下面的警告
它(`testwithuseragent${ua}`,()=>{
//在这里测试
}
}
尽管此方法存在一些故障迹象

运行测试时无法更改某些配置值。任何不受Cypress直接控制的内容(如超时、userAgent或环境变量)都将在运行时被忽略