Cypress 5.0全页屏幕截图自动模式

Cypress 5.0全页屏幕截图自动模式,cypress,Cypress,我正在使用Cypress5.0。我已经在cypress.json中配置了screenshots文件夹。 我正在以编程方式使用cypress runner API运行测试 我将视口值用作: config.viewportWidth=1080; config.viewportHeight=1024 屏幕截图即将出现,但它不在整页上。我的网页有滚动,截图只拍摄可见区域 请指导如何使用整页屏幕 My Cypress.json { "projectId": "yvs4

我正在使用Cypress5.0。我已经在cypress.json中配置了screenshots文件夹。 我正在以编程方式使用cypress runner API运行测试

我将视口值用作: config.viewportWidth=1080; config.viewportHeight=1024

屏幕截图即将出现,但它不在整页上。我的网页有滚动,截图只拍摄可见区域

请指导如何使用整页屏幕

My Cypress.json

{
    "projectId": "yvs41u",
    "video": false,
    "integrationFolder": "integration-tests/experiences",
    "testFiles": "**/*.js",
    "fixturesFolder": false,
    "pluginsFile": "plugins/index.js",
    "supportFile": "support/index.js",
    "screenshotsFolder": "build/reports",
    "videosFolder": "build/reports",
    "videoUploadOnPasses": false,
    "trashAssetsBeforeRuns": false,
    "reporter": "mochawesome",
    "chromeWebSecurity": false,
    "reporterOptions": {
        "charts": true,
        "html": false,
        "json": true,
        "reportDir": "cypress/reports/mochawesome",
        "reportTitle": "Archie Integration Testing Suite",
        "reportFilename": "report",
        "overwrite": false,
        "inline": true,
        "inlineAssets": true,
        "timestamp": "dd-mmm-yyyy-HH-MM-ss"
    }
}

默认情况下,Cypress仅捕获视口。要截屏整个页面,您需要首先配置截屏:

Cypress.Screenshot.defaults({ capture: 'fullPage' });
cy.screenshot();
因此,整个页面将被捕获


进一步阅读:

谢谢乔纳。我想知道如何全局配置它,这样我就不需要在每个测试文件中添加cy.screenshot()。@pmrushi您读过了吗?一旦你把配置放在index.js中,它将应用于测试期间的所有截图。但仍然不能使用完整的页面截图,它只获取view-port-screenshot.Cypress.screenshot.defaults({capture:'fullpage'});Cypress.on('test:after:run',(test,runnable)=>{if(test.state==='failed'){let screenshotFileName=
${runnable.parent.title}--${test.title}(failed).png
;let imageUrl=
${Cypress.spec name}/${screenshotFileName}
;let videUrl=
${code>${Cypress.spec name}.mp4
;addContext({test},imageUrl);addContext({test},videUrl);}});