Доступ к буферу обмена можно обойти, но основная проблема заключается в том, что document.execCommand ('copy') не работает (как указано выше), что, как я считаю, является основным (и единственным?) Способом для вашего приложения. для программного помещения текста в буфер обмена пользователя.
Предполагая, что это происходит каким-то образом (или фиксируется в восходящем потоке), проверка содержимого буфера обмена может быть выполнена, например, с помощью clipboardy:
npm i - D clipboardy
plugins / index. js:
const clipboardy = require('clipboardy');
module.exports = ( on ) => {
on('task', {
getClipboard () {
return clipboardy.readSync();
}
});
};
В вашей спецификации:
describe('test', () => {
it('test', () => {
cy.document().then( doc => {
doc.body.innerHTML = '<input id="inp">';
});
cy.get('#inp').type('test{selectall}');
cy.document().then( doc => {
doc.execCommand('copy');
});
cy.task('getClipboard').should('contain', 'test');
});
});
Надеюсь, этот код будет вам полезен. Спасибо.