2013-05-17 4 views
1

Je suis en train de tester une application Web javascript avec un certain comportement en fonction de la souris sur l'utilisation de l'API Selenium2 WebDriver C#. J'ai une méthode d'extension qui effectue un survol sur un élément web pour garder le code DRY.Comment réinitialiser la position du curseur de la souris Selenium?

public static void Hover(this IWebElement webElement, IWebDriver driver) 
{ 
    new Actions(driver).MoveToElement(webElement).Perform(); 
} 

Maintenant, je veux une méthode qui « remet à zéro » la position de la souris à une valeur par défaut naturelle indépendante de l'élément. J'appelle ça dans TearDown() pour garder le driver dans un état connu après les tests. Le mieux que je pouvais trouver est

public static void ResetMouseCursor(IWebDriver driver) 
{ 
    new Actions(driver).MoveByOffset(-9999, -9999).Perform(); 
} 

qui vient de mettre le navigateur est dans le pays de no man. Y a-t-il une meilleure manière de faire cela?

Répondre

0

Une méthode agnostique DOM semble être une mauvaise idée. Le code ci-dessus complètement tanké dans le pilote Firefox pour "sortir du document" exception. La meilleure chose que je pourrais trouver, est de placer le curseur de la souris à la position (0,0) de l'élément le plus racine de la page ou (qui dans mon cas est un IFrame contenant la seule page javascript app) et utiliser l'héritage pour effectuer l'initialisation. Dans le pilote C#, c'est. Tout dans le cadre peut simplement hériter de la classe et avoir accès à la méthode.

Questions connexes