2010-01-02 5 views
2

Toute idée de comment je peux déclencher le flou même juste après le focus, de sorte qu'il ne se produise pas "faiblement couplé" (les actions sont envoyées une par une au serveur sélénium). Laissez-moi vous expliquer:feu à la fois le flou et la mise au point étroitement couplés?

Dans Selenium RC, vous déclenchez le flou et vous focalisez sur fireEvent (locator, "flou") et fireEvent (locator, "focus"). Cependant, après l'envoi de l'événement flou au navigateur, l'événement focus ne suit pas directement l'événement de flou dans la pile de commandes javascript. C'est un problème dans le cas suivant: détecter le flou d'un groupe de widgets, comme un groupe de zones de texte. Ce que je fais: toutes les zones de texte partagent le même écouteur et lorsqu'un flou se produit, j'exécute simplement une commande supplémentaire qui vérifie si un événement de focus a été capturé par l'une des zones de texte, sinon, vous ignorez le flou. Cette commande supplémentaire que je lance en javascript est automatiquement exécutée après l'exécution de toutes les commandes en attente, dans ce cas, une commande de focus est l'une de ces commandes en attente.

Retour à Selenium RC: après que l'événement de flou est déclenché par le serveur Selenium, il attend la commande suivante, dans ce cas l'événement focus et le déclenchera. Cependant, comme vous pouvez le comprendre, entre-temps, la commande addiontal a déjà été déclenchée et aucun nouvel événement de focus n'a été détecté. En tant que tel, un flou de groupe est détecté et géré, dans ce cas, le flou est géré de manière incorrecte car le focus n'est pas déclenché directement après le flou, comme un navigateur ferait ....

J'espère que vous comprendre mon problème car c'est un peu difficile à expliquer. Une idée est sur la façon de résoudre ce problème? donc je peux tester le bon comportement? (non ma validation intervient trop tôt car un groupe-flou n'est pas correctement capturé)

Je pense que la façon de résoudre ceci: envoyer un morceau de javascript au serveur Selenium qui sera évalué et déclenchera les deux événements après L'un et l'autre. Ou pas? ... Et toi comment ferais-je ça?

Répondre

2

Je vous belive recherchez:

selenium.getEval ("[mon JavaScript ici]");

Vous pouvez envoyer un extrait javascript de votre choix pour être évalué par le navigateur, ce qui devrait vous permettre d'enchaîner un focus et de flouter en une seule commande.

+0

Merci, c'est il y a longtemps que j'ai résolu cela. J'ai fait la même chose que tu as suggéré si je me souviens bien. – edbras

Questions connexes