Ste*_*hen 6 browser e2e-testing cypress
我有一些仅在移动设备上进行的广告致电。在Chrome浏览器中,我可以使用“设备模式”并模拟移动设备,并且来自服务器的广告调用已正确地针对移动设备进行了定制。我不确定Chrome如何做到这一点,除非可能会发送其他用户代理。
在Cypress.io文档中,它说可以在配置文件(Cypress.json)中更改用户代理。但是,我需要先对桌面视口进行测试,然后再对具有移动用户代理的移动视口进行测试。有没有办法以编程方式更改用户代理?
Mar*_*rda 12
更新:根据https://github.com/cypress-io/cypress/issues/3873,由于 Cypress 3.3.0user-agent在 acy.request()和cy.visit().
例如,如果您需要设置userAgent为Googlebot:
cy.visit(url, {
headers: {
'user-agent': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
}
});
Run Code Online (Sandbox Code Playgroud)
before(() => {
cy.visit(url, {
onBeforeLoad: win => {
Object.defineProperty(win.navigator, 'userAgent', {
value: 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
});
},
});
});
Run Code Online (Sandbox Code Playgroud)
截至 2021 年 8 月 12 日更新:
看来您无法再更改用户代理: https: //docs.cypress.io/api/cypress-api/config#Notes
旧答案:
现在 cypress 支持在 cy.visit 和 cy.request 的标头中传递用户代理:
it('Verify Social Sharing Meta Tags', () => {
cy.visit(portalURL + '/whats_new/140', {
headers: {
'user-agent': 'LinkedInBot/1.0 (compatible; Mozilla/5.0; Apache-HttpClient +http://www.linkedin.com)',
}
});
cy.document().get('head meta[name="og:type"]')
.should('have.attr', 'content', 'website');
});
Run Code Online (Sandbox Code Playgroud)
https://on.cypress.io/changelog#3-3-0
| 归档时间: |
|
| 查看次数: |
1005 次 |
| 最近记录: |