web-dev-qa-db-fra.com

Comment chercher copié dans le contenu du presse-papiers dans cyprès

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 ))

https://someurl.net/machines/0c459829-a5b1-4d4b-b3c3-18b03c1c969a/attachments/a30ceca7-198e-4d87-a550-04c97fbb9231/dowload

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>

enter image description here

4
soccerway

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.

0
Realdinho