如何在cypress中授予Mozilla FF剪贴板权限

问题描述 投票:0回答:1

我有一个 cypress 测试,其中包括检查复制按钮是否已复制输入字段中的值。问题是我还没有找到一个好的方法来为 Mozilla 浏览器授予剪贴板权限,就像 Chrome 浏览器可以做到的那样。

而且我不确定这样的测试是否有意义,如果不是向浏览器授予剪贴板权限而是模拟复制操作:

cy.document()
    .then((doc) => {
       const input = doc.querySelector(inputSelector)
       input.select()
       doc.execCommand('copy')
    })

我尝试向 cypress 配置文件添加剪贴板权限

env: {
    permissions: {
      'clipboard-write': true
    }
}
permissions cypress clipboard mozilla
1个回答
0
投票

你可以这样做,让我知道它是否有效..!

const { defineConfig } = require('cypress')

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      // implement node event listeners here
    },
    experimentalModifyObstructiveThirdPartyCode: true,
    chromeWebSecurity: false,
    firefoxGcInterval: null
  },
})

然后添加自定义命令

Cypress.Commands.add('pasteText', (text) => {
  cy.window().then((win) => {
    win.navigator.clipboard.writeText(text).then(() => {
      cy.focused().trigger('paste');
    });
  });
});

然后在您的测试文件中您可以使用自定义命令

it('should paste text', () => {
  cy.visit('your-page-url');
  cy.get('input-selector').focus();
  cy.pasteText('Text to paste');
});
© www.soinside.com 2019 - 2024. All rights reserved.