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. P>
Comment puis-je tester cela? P>
3 Réponses :
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();
Vous pouvez utiliser J'ai un Exemple ici de la suite de tests de ma propre application: P> ptor.actions (). Draganddrop (el1, EL2) .Perform (); code> /**
* 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
});
});
};
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();
Regardez Github.com/angular/proTractor/issues/123 et github.com/angular/protractor/commit/...
@Nicolae Olariu Le lien ( github.com/angular/protractor/commit/.../a>) Vous avez fourni du travail pour moi