在cypress headless模式下,测试无法获取index.js中提供的设置

在cypress headless模式下,测试无法获取index.js中提供的设置,cypress,cypress-cucumber-preprocessor,Cypress,Cypress Cucumber Preprocessor,点击我们测试站点上的某个按钮,系统应该导航到MYOB登录页面。但在无头模式下运行测试时,不会发生这种情况,并显示在页面下方(请参阅屏幕截图)。在testrunner模式下,最初我看到了这个错误,但是在index.js中添加了--disable features=samesitebydfaultcookies之后,测试成功地导航到了MYOB站点,我可以继续。知道为什么上述设置不适用于无头模式吗 Cypress版本:6.6.0 GitBash:2.28.0 操作系统:Windows 10 64位操

点击我们测试站点上的某个按钮,系统应该导航到MYOB登录页面。但在无头模式下运行测试时,不会发生这种情况,并显示在页面下方(请参阅屏幕截图)。在testrunner模式下,最初我看到了这个错误,但是在index.js中添加了
--disable features=samesitebydfaultcookies
之后,测试成功地导航到了MYOB站点,我可以继续。知道为什么上述设置不适用于无头模式吗

Cypress版本:6.6.0 GitBash:2.28.0 操作系统:Windows 10 64位操作系统 柏树黄瓜预处理器“:2.5.5

从Git bash运行以下命令:

CYPRESS_baseUrl=https://some-test-url/book/ npx cypress-tags run -e TAGS='@experimental' --config experimentalSourceRewriting=true GLOB='tests/cypress/integration/book/test-booking.feature' --headless --browser chrome



const testStore = {};
    module.exports = (on, config) => {
        on('file:preprocessor', cucumber()),
            on('before:browser:launch', (browser, launchOptions) => {
                if (browser.name === 'chrome' && browser.isHeadless) {
                    launchOptions.args.push('--disable-gpu');
                    return launchOptions
                }
    
                if (browser.name === 'chrome' || browser.name === 'edge' || browser.isHeadless) {
                    launchOptions.args.push('--disable-features=SameSiteByDefaultCookies') // bypass 401 unauthorised access on chromium-based browsers
                    return launchOptions
                }
    
                if (browser.name === 'chrome') {
                   // launch chrome using incognito
                   launchOptions.args.push(' --incognito')
                   return launchOptions
                }
            });
    
        on('task', {
            copySomeData({ name, value }) {
                console.log(name, value)
                testStore[name] = value
         
                return true
            },
        });
    
        on('task', {
            getSomeData(name) {
                return testStore[name]
            },
        });
    
    };

如果您在匿名模式下测试,请注意,匿名模式的默认设置是阻止第三方cookie。这可能会导致类似于由于缺少SameSite属性而阻止跨站点cookie的行为。此设置可以在匿名模式的新选项卡页上更改,或在chrome://settings/cookies. 资料来源: