Défilement automatique d'un bouton dans la vue avec Capybara et le Sélénium

Parfois le mois dernier (juin 2013), plusieurs de nos Capybara tests a commencé à défaut, principalement parce que les boutons ils sont en essayant de cliquer sur ne sont pas en vue. Idéalement, j'aimerais comprendre ce qui a changé. Nous sommes actuellement sur le sélénium-webdriver 2.33 mais j'ai essayé de revenir à 2,29 et cela ne fonctionne toujours pas. Nous sommes en cours d'exécution à l'encontre de Firefox uniquement pour le moment et c'est peut-être en raison d'une nouvelle version de Firefox.

Sauf que, je ne peux pas comprendre comment faire défiler les boutons dans la vue. De ce que je comprends, je peux utiliser scrollIntoView mais vous ne savez pas comment l'appeler dans le Capybara étape. J'ai essayé de variations sur:

 Capybara.current_session.driver.execute_script("arguments[0].scrollIntoView(true;)", find_button(button).native)

Mais avec pas de chance parce que find_button lui-même ne fonctionne pas.

Remarque: nous sommes à la sélection des basé sur le texte du bouton. La sélection basée sur l'ID est possible, mais il faudra beaucoup de changements à notre INTERFACE utilisateur de tests, donc nous aimerions éviter.

Une autre remarque: le bouton est dans un div scrollable. La page elle-même n'a pas de défilement.
Quelle version de Firefox? Vous pouvez essayer de désinstaller Firefox et puis installer une version spécifique de Firefox et de désactivation de la mise à niveau sur elle afin qu'elle reste à la version que vous attendez.

OriginalL'auteur Kyle Baley | 2013-07-12