Quelles sont les différentes méthodes de clic droit sur un webelement dans QTP?
J'ai dû faire un clic droit sur un webelement. J'ai essayé les méthodes suivantes:
Pour la simplicité du code assumer webElem
se réfère à un valide Browser().Page().WebElement()
.
1)
Set obj=createobject("mercury.devicereplay")
getX = webElem.GetROProperty("abs_x")
getY = webElem.GetROProperty("abs_y")
'obj.MouseClick getX, getY,RIGHT_MOUSE_BUTTON
LE CODE CI-DESSUS NE FONCTIONNE PAS
2)
webElem.RightClick
CE CODE NE FONCTIONNE PAS, SOIT
3) CODE SUIVANT TRAVAILLÉ:
Setting.WebPackage("ReplayType") = 2
webElem.RightClick
Setting.WebPackage("ReplayType") = 1
Mes questions sont:
- Pourquoi j'ai du modifier le dispositif de relecture type de faire un clic droit de travail? Où en tant que, cliquez sur la méthode fonctionne très bien.
- Pourquoi, à travers
Mercury.DeviceReplay
objet, leMouseClick
méthode n'a pas fonctionné? - Comment puis-je le faire par
FireEvent
méthode? (veuillez expliquerFireEvent
méthode en détail, pour info: je suis nouveau sur QTP) - Quelles sont les autres méthodes pour ce faire?
Quelqu'un pourrait-il expliquer pourquoi certaines méthodes de travail et certains qui ne marche pas.
Grâce,
Srittam
OriginalL'auteur Srittam | 2012-12-11
Vous devez vous connecter pour publier un commentaire.
Par défaut QTP exécute la plupart des étapes sur le web des éléments à l'aide de la relecture d'événements cela signifie qu'il envoie DOM événements pour le sous-élément du DOM. Quand une personne interagit avec la page web, le navigateur génère de nombreux événements DOM (par exemple
mousemove
mousedown
contextmenu
) et l'application web peut dépendre l'un de ces événements pour déclencher le comportement requis. QTP ne sais pas quels événements chaque application web doit utiliser et donc reproduit le sous-ensemble QTP de la pensée de développeurs sont intéressants (par exemple pourClick
QTP replaysmousedown
,mouseup
etclick
. PourRightClick
il y a aussi uncontextmenu
événement quelque part (je ne me souviens pas de l'ordre) et il n'y a pas declick
.La raison probable que ce que vous avez essayé dans #2 échoué, c'est parce qu'il y a d'autres événements qui attend l'application qui n'ont pas été créés par QTP.
Lorsque vous spécifiez
ReplayType=2
(comme dans le cas #3) vous dites QTP du package web à utiliser dispositif de relecture cela signifie qu'il physiquement déplace la souris vers l'emplacement et effectue l'opération. Cela signifie que le navigateur pense à une personne réelle est le déplacement de la souris et de reproduire exactement les mêmes événements, comme il le ferait quand un être humain est d'effectuer l'opération.Vous devriez avoir gotton exactement les mêmes résultats avec des cas #1 (explicitement à l'aide de
DeviceReplay
). Je pense à deux raisons pour lesquelles elle n'a toujours pas.'obj.MouseClick getX, getY,RIGHT_MOUSE_BUTTON
un commentaire, c'est probablement un copier/coller de l'erreur, mais si c'est aussi ce que vous avez essayé d'exécuter elle explique pourquoi rien ne s'est passé.abs_x
etabs_y
à relire le clic, c'est le coin supérieur gauche de laWebElement
et peut-être que ce n'est pas atteindre le bon élément du DOM. La façon dontRightClick
dans dispositif de relecture mode diffère de votre mise en œuvre, c'est qu'il clique dans le milieu de laWebElement
(par défaut) essayer d'obtenir la largeur et la hauteur de l'élément et de le faire:obj.MouseClick getX+(width/2), getY+(height/2), RIGHT_MOUSE_BUTTON
Il y a un autre moyen d'effectuer un clic droit et qui serait:
Mais je recommanderais contre elle depuis
webElem.RightClick
devrait fonctionner au moins aussi bien si pas mieux.Salut @Motti , je pouvais comprendre clairement la façon dont QTP fonctionne quand il clique à droite/à cliks. Je veux aussi savoir, si il n'y a aucun moyen de savoir quels sont les événements DOM généré par le navigateur pour un élément du DOM. Aussi, d'où je peux trouver le jeu complet d'événements DOM suivie par QTP pour différentes actions? Je veux trouver l'événement qui n'a QTP manquer ou ne pas faire dans l'ordre, de sorte que l'action prévue ne s'est pas produit.
vous pouvez suivre les événements DOM avec plusieurs outils (par exemple, DHTMLSpy) et vous pouvez utiliser la même méthode que lors de l'exécution d'un QTP de test pour voir les événements qui sont générés. Notez qu'il peut être que l'événement qui manque, c'est sur un autre élément du DOM que vous avez dans le script auquel cas QTP ne se déclenche pas en mode événement.
OriginalL'auteur Motti