9
votes

Comment tester les fonctionnalités de glisser-déposer dans des tests E2E angularjs

J'essaie de tester ma candidature dans laquelle j'ai besoin de déplacer un widget d'un endroit à un autre, dans un autre mot, j'ai besoin de tester la fonctionnalité de glisser-déposer dans un test de bout en bout.

Comment puis-je tester cela?


3 Réponses :


1
votes

Vous aurez besoin de chaîner vos actions de souris:

var yourOffset = {x:5,y:5};
ptor().actions().
   mouseMove(yourElement,yourOffset).
   mouseDown().
   mouseMove(youTarget[,targetOffset]). // [] optional
   mouseUp().
   perform();


0 commentaires

0
votes

Vous pouvez utiliser ptor.actions (). Draganddrop (el1, EL2) .Perform (); code>

J'ai un Exemple ici de la suite de tests de ma propre application: P>

/**
 * Reorders questions by dragging and dropping.
 */
this.moveQuestion = function (questionToMove, positionToMoveTo) {
    return page.getQuestionField(positionToMoveTo).then(function (dest) {
        page.getDragHandle(questionToMove).then(function (dragHandle) {
            ptor.actions().dragAndDrop(dragHandle, dest).perform();
            ptor.sleep(800);    // wait for animation
        });
    });
};


0 commentaires

4
votes

J'ai eu ce même problème. La solution pour moi était de suivre les conseils de la question de sélénium ici: https://code.google.com/p/selenium/issues/detail?id=3604#C20

À partir de l'exemple de @nilsk, voici ma solution: P>

var yourOffset = {x:5,y:5};
ptor().actions()
    .mouseMove(yourElement,yourOffset)
    .mouseDown()
    .mouseMove(yourElement,{x:0,y:0}) // Initial move to trigger drag start
    .mouseMove(youTarget[,targetOffset]) // [] optional
    .mouseUp()
    .perform();


0 commentaires