1

J'ai essayé de mettre en œuvre Selenium webdriver pour quelques jours pour faire mes tests javascript. J'ai installé et inclus la gemme selenium-webdriver dans mon Gemfile. Quelques tests simples passent en ajoutant , js: true à un test Rspec. Rien d'autre n'était nécessaire: Lorsque les tests sont exécutés, une fenêtre Firefox ouvre la page en cours spécifiée plus haut dans le fichier avec Capybara visit path("/news/#{news_item.id}") puis un bouton est cliqué, affichant un formulaire caché, les champs sont remplis, et un soumettre le bouton est pressé, pas de problème. Le test passe et le navigateur se ferme.Comment puis-je accéder au pilote Web par défaut pour Selenium 2 avec Rails 3 Rspec et Capybara?

Avancer vers des tests plus complexes nécessite que j'appelle des méthodes sur le webdriver, mais je ne sais pas comment y accéder, car je n'en ai pas explicitement créé un. Je pourrais, cependant, si je voulais créer le mien avec driver = Selenium::WebDriver.for :firefox mais cela provoque l'ouverture d'une seconde instance de navigateur, et il est complètement vide au lieu d'ouvrir la page vers laquelle navigue Capybara.

Ma question est: Comment puis-je avoir accès au pilote Web par défaut utilisé pour appeler des méthodes telles que empty_stars = driver.find_element(:class, "empty-stars-container") et driver.action.move_to(empty_stars).perform?

Répondre

4

Vous pouvez accéder au WebDriver à l'aide Capybara:

page.driver.browser 

Vous voulez faire quelque chose comme:

empty_stars = page.driver.browser.find_element(:class, "empty-stars-container") 
+0

Merci beaucoup! Je peux maintenant accéder au webdriver par défaut et appeler les méthodes sans problème. – dudeitsdevin90

Questions connexes