Comment obtenir le contenu du "presse-papiers" dans Cypress. J'ai un bouton dans mon application Web, en cliquant sur le bouton Button System effectuera "Copier dans le presse-papier" et qu'un message sera affiché. Vous trouverez ci-dessous un exemple du contenu de l'URL Copier dans le presse-papiers ( Ce contenu URL est différent de l'URL du site Web ))
J'ai une double vérification qu'il n'y a pas d'attribut href
dans la balise de ce bouton. Donc, j'ai utilisé un plugin appelé clipboardy et j'ai ajouté plugins/index.js
fichier
const clipboardy = require('clipboardy');
module.exports = ( on ) => {
on('task', {
getClipboard () {
return clipboardy.readSync();
}
});
};
Dans mon test, j'ai utilisé cy.tak () pour obtenir le contenu du presse-papiers, mais cela n'imprime pas le contenu de l'URL réel
cy.get('td').find('div').find('span').find('button').find('i').eq(0).click().then(()=>{
cy.task('getClipboard').then((data)=>{
console.log("Helloooo:"+data);
})
})
<td class="sc-hgRTRy duUdhJ">
<div>
<span class="sc-bYwvMP jTmLTC">
<span class="sc-jzJRlG iVpVVy">
<span role="button" aria-expanded="true" aria-haspopup="true" aria-owns="5aa03785-1370-455e-a838-4154f7481a7b">
<button class="sc-feJyhm cJOKrG">
<i class="icon fas fa-link sc-htpNat cQABgO" aria-hidden="true" data-component-type="icon">
</i>
</button>
</span>
</span>
</span>
</div>
</td>
J'ai réussi à obtenir le lien copié en imprimant la valeur donnée après avoir cliqué sur le bouton puis recherché l'objet dans la console afin de trouver le lien. J'ai trouvé le lien dans [object]._vClipboard.clipboardAction.text
, comme vous pouvez le voir ci-dessous:
cy.get('[data-test=copy-link-button]').click().then(($clipboard) => {
const copiedLink = $clipboard[0]._vClipboard.clipboardAction.text;
cy.visit(copiedLink);
});
J'espère que cela aidera.