Comment faire pour simuler un glisser-déposer d'action dans le rapporteur?
J'ai une double curseur et je voudrais tester que c'est opérable et le retour de la droite de données. Le curseur a un min et un max de gestionnaire, il a aussi quelques "points d'arrêt que je peux crochet. "
Ce que je veux simuler est
- un évènements touchstart de l' ".gestionnaire-max" élément
- un mouvement du pouce au-dessus de l'élément avec la classe ".étape-3"
- un touchEnd de l' ".gestionnaire-max" élément
alors que je trouve comment déclencher un évènements touchstart et un touchEnd événement. Je suis complètement paumé sur la manière de simuler le déplacement de la manette de
browser.executeScript('angular.element(arguments[0]).triggerHandler("touchstart");', filterHandler);
//<--- move event????
browser.executeScript('angular.element(arguments[0]).triggerHandler("touchend");', filterHandler);
P. S. La portée de cette question est un test d'intégration qui teste si ce qui se passe à l'application lorsqu'un utilisateur d'interagir avec un double curseur de la directive est le résultat souhaitable.
Vous devez vous connecter pour publier un commentaire.
elem = Élément que vous souhaitez déplacer;
target = Élément sur lequel vous souhaitez déposer elem;
Pour WebdriverJS:-
Pour Rapporteur:-
(Protractor)
ajouté une faute de frappe!C'est assez simple aujourd'hui:
Où
dragAndDrop
en coulisses estmouseDown
+mouseMove
+mouseUp
:Ok jouant autour, j'ai trouvé que j'ai il y a de meilleures manières. probablement les sources que j'ai été à la recherche avant ont été dépassées. Le script suivant va faire l'affaire très propre et facile...
vous pouvez obtenir le pilote comme ça ...
Acclamations
Cela fonctionne pour moi les gars. Mon scénario est de glisser une fenêtre pop-up boîte de dialogue qui n'ont pas un élément cible.
Je suis dans un milieu de conversion de projet d'automatisation de l'utilisation de SELENIUM_PROMISE_MANAGER à l'utilisation de JS natif async/await. Auparavant, j'ai utilisé de la manière décrite par user3800138 ^, cependant cela n'a pas fonctionné pour moi plus ainsi que tous les autres approches décrites ici. Ce qui a fonctionné pour moi est le chaînage de chaque action unique par le biais de
then
méthode comme ceciet ensuite appeler comme ça
await dragAndDrop($leftSlider, $lastDateTitle);
Ou même à l'aide de
await
ressemblera à ceciJe sais que c'est un peu encombrant, mais je ne pouvais pas trouver une meilleure option
Avec des problèmes comme celui-ci, j'ai isoler le code de commerce (qui fait en fait quelque chose d'utile avec le drag & drop événements) à partir de l'INTERFACE utilisateur. De cette façon, je peux faire en sorte que le glisser-code de départ, devra remplir les structures de données correctement et je peux faire en sorte que la baisse du code de gestion permettra de faire la bonne chose sans fait d'avoir d'avoir quelque chose d'envoyer réel drag&drop événements.
De cette façon, le vrai code de gestion des événements est juste 1-2 lignes, donc les chances qu'il se casse, il y a très, très mince. Aussi, il n'y a aucune raison de tester le drag&drop code de votre navigateur ou système d'exploitation; ce code devrait fonctionner.