Contexte

  L''extrémité avant du moment de la rédaction des cas de test, alors que certains effets sur l''interface de test, veulent souvent être en mesure de simuler une action de l''utilisateur, mais la plus importante est aux actions des utilisateurs simulent avec le code qui déclenchent l''événement spécifié.Certains vient généralement avec un certain nombre d''événements déclencheurs sur les éléments de méthodes, telles que click, mise au point, etc., mais si d''autres événements tels que mousedown, mouseup, mouseenter, ces événements simulent la fa?on dont il?

  En pensant

  En fait, l''idée est très simple, web standard définit un ensemble d''interface API, ce qui nous permet de distribuer dispatchEvent un événement à un des objectifs d''événement spécifique, et utiliser cette méthode de déclenchement d''événements peuvent déclencher nos règles de traitement standard des événements normaux (y compris l''événement option capture et processus bouillonnant), alors il est très puissant, et basé sur ce que nous pouvons faire beaucoup de choses.

  la mise en oeuvre

  Processus général Je crois que nous avons pensé, rien de moins que quelques étapes:

  Créer un événement aux instances de déclenchement

  Obtient les objets d''élément à des événements de déclenchement

  éléments d''invocation de méthode dispatchEvent paramètre d''objet est le cas d''événement cible

  Des événements spéciaux pour analyser analogiques, la mise en ?uvre intelligente

  Tout d''abord, créer une instance de l''événement

  Fournir une interface MouseEvent normes Web, en particulier l''apparition d''événements lorsque l''utilisateur avec une interaction de dispositif de pointage (par exemple de souris).Grace à cette interface, les événements courants: clic, double clic, mouseup, mousedown.

  Le constructeur MouseEvent (typeArg, mouseEventInit), peut générer un nouvel objet MouseEvent.Ce constructeur prend deux paramètres, le premier paramètre est typeArg, spécifie le nom de l''événement, généralement une cha?ne.Le deuxième paramètre est mouseEventInit, vous pouvez initialiser le MouseEvent dictionnaire, qui est, une partie de la valeur de la propriété spécifiée de l''événement, comme un événement de la souris commune screenX, screenY, clientX, clientY et autres biens, et depuis MouseEvent est héritée de UIEvent, UIEvent et héritage en cas, il peut comprendre des attributs UIEventInit mouseEventInit et EventInit.

  Résumé ligne de code est le suivant:

  const = mouseEvent nouveau MouseEvent (typeArg, mouseEventInit);

  Nous examinons ici leurs besoins réels, quels attributs dont les valeurs peuvent être spécifiées.

  Et encore ici, est non seulement un événement de la souris, il y a beaucoup d''autres événements, aussi longtemps que les supports de votre navigateur, vous pouvez utiliser.En ce qui concerne notamment: https: // développeur.mozilla.org / zh-CN / docs / Web / API

  Cet événement qui listes, en théorie, peuvent se déclencher et simulation.

  En second lieu, il est de déclencher l''événement sur l''élément spécifié

  Avec l''événement, vous pouvez continuer d''appeler la méthode dispatchEvent de déclenchement d''un élément correspondant.Voici simple, qui est une ligne de code:

  document.getElementById ( "id").dispatchEvent (mouseEvent);

  Enfin, des événements spéciaux ou des scénarios, pour simuler l''opération de décomposition

  Quelques événements spéciaux ou des scènes, en fait, peuvent analyser les détails d''une onde, puis divisé en un certain nombre d''événements déclencheurs dans une rangée, vous pouvez obtenir subtile.

  Ici, par exemple, cliquez sur l''événement, en fait, l''essence est: un déclencheur mousedown, alors déclencher une nouvelle fois mouseup dans un temps assez court, cela peut être réalisé indirectement un événement de clic.lequel est:

  // dans un temps assez court

  mousedown + mouseup = clic

  De cette fa?on, en fait, un certain nombre d''opérations spéciales au moment de la simulation, nous pouvons parvenir à un.Par exemple, simuler l''opération de sélection multiple glisser la souris d''un utilisateur, son essence est la suivante: le déclenchement maintenant événement mousedown sur un élément, puis effectuer événement MouseMove, quand puis faites-le glisser à l''élément un, mouseup événement déclencheur, à savoir:

  // simuler l''utilisateur fait glisser la souris

  (élément Start) mousedown + (élément d''arrêt) mouseup = opération de déplacement d''une souris

  Ici, les détails peuvent être assez, vous voyez la scène réelle peut être simulée sur demande, comme le mouvement de la souris, la souris entre un élément qui déclenchera l''événement mouseenter, feuilles l''élément déclencheront événement mouseleave.C''est:

  // simulations plus précises l''utilisateur fait glisser la souris

  (élément Start) mousedown + (élément intermédiaire) mouseenter + (élément intermédiaire) mouseleave + (élément OFF) mouseup = opération de déplacement d''une souris

  En bref, les détails peuvent être assez, mais assez pour vous de simuler le point de test de base à cette opération, ne pas oublier, notre principe est aux actions des utilisateurs simulent, puis exécuter les cas de test.

  Encore plus loin, vous pouvez emballer une opération utilisateur commune, puis exposée à la méthode, est introduite dans le cas de test, pour atteindre très multiplexés.

  Pour résumer

  Pour conclure, en fait, il est d''utiliser l''interface MouseEvent et dispatchEvent deux standards Web fournis à des événements de déclenchement par le code, puis simuler le fonctionnement de l''utilisateur, à des cas de test, la simulation de comportement des utilisateurs.Je l''espère pour votre aide.

  Précautions

  Voici quelques contraintes, nous devons faire attention à l''autre:

  Cette méthode de l''article mentionné est principalement utilisé pour les scénarios de tests automatisés, les projets de développement normal, nous ne recommandons pas l''événement déclencheur de cette manière, ce qui peut conduire à votre code difficile à comprendre la maintenabilité d''impact du code.

  Utilisé ici, les deux interfaces principales, la compatibilité est limitée, IE est substantiellement pas utilisé, mais, en général, une scène avec cette méthode Unité de test automatisé pour la plupart des scénarios ou test, et ceux-ci en général, il y aura une scène pour simuler un environnement de navigateur et d''utiliser le plus est le chrome noyau, donc en gros dans le scénario de test, cette approche est s?r à utiliser.

  Cette description sur cette mise en ?uvre de l''article d''événement déclencheur dom avec le code js sur l''introduction à cela, et plus l''événement déclencheur de, dom scénario recherche s''il vous pla?t Maison de l''article précédent ou continuer à parcourir les articles connexes suivants après beaucoup d''espoir que nous script soutien à domicile!

  Vous pouvez également être intéressé par l''article: JS différence dans les événements de niveau dom0 et des événements de niveau DOM2 introduire des méthodes d''add n?ud DOM dynamique JS et exemples d''événements JavaScript DOM ajouter des événements d''événements domready JS six sortes de méthodes pour atteindre l''objectif du résumé de l''événement de suppression fonction javascript dom code événement js textInput texte DOM3 en JavaScript événements DOM (notes) appel JavaScript appliquer à utiliser la méthode objet JavaScript pour lier aux événements DOM pointent à ce problème sont deux choses sur le javascript modèle d''événement DOM

événements déclencheurs détaillés dom mise en ?uvre avec le code js

Recommend Article: