Le sélénium cliquez sur les coordonnées ne sont pas en cliquant sur l'endroit prévu

J'ai besoin de l'écran de gratter une page web qui utilise des contrôles ActiveX pour la navigation. Ce n'est pas pour l'interface utilisateur des fins de test, de son pour le téléchargement de données à partir d'une application existante.

Le problème que j'ai est la barre de navigation est complète avec javascript et ActiveX est impossible d'obtenir les éléments par quoi que ce soit. Donc, je suis en train de faire les clics de souris à l'coordonnées.

Je suis en utilisant la méthode suivante réponse par Bergstrom

Fondamentalement, je suis en train de faire

var action = new Actions(ieDriver).MoveToElement(ieDriver.FindElement(By.Tag("HTML"))).MoveByOffset(200,100).Click().Perform();

J'ai confirmé lors du débogage qui ieDriver.FindElement retourne -1,-1 pour l'emplacement de la balise HTML, de sorte que le décalage de coordonnées doit être correcte.

J'ai mesuré les coordonnées à l'aide d'internet explorer Barre d'outils. Lorsque j'exécute le code, rien ne se passe, donc je suppose que c'cliquez dans l'espace vide.

Est-il un moyen de la commande ping sur le navigateur donc je sais où les coordonnées sont ou est-il une meilleure façon d'atteindre cet objectif?

J'ai pu réussir à le faire à l'aide de VS Codé de l'Unité de Test depuis il réellement se déplace le curseur, mais je ne pense pas que la licence va me permettre d'utiliser cette option, ainsi que la gêne de le faire fonctionner en dehors de visual studio.

  • Séparez vos actions avec un .perform() et l'attente entre eux. Ensuite, vous pouvez voir où il est fait en déplaçant la souris à la place de ça il fait tout à la fois.
  • Sur une autre note, par contre, pourquoi êtes-vous en cliquant sur un point? Si le changement de résolution à tous sur votre navigateur, cette étape ne fonctionne pas cause au point qu'il est en cliquant sur sera mauvais. Pas très adaptable pour les applications web que le changement basé sur les utilisateurs des moniteurs...