save_and_open_page ne fonctionne pas avec capybara 2.0?
Je viens d'avoir mes capybara en version 2.0, et tous mes save_and_open_page appels renvoyer une page html sans style. Il a les feuilles de style des liens correctement en haut de la page. Quand je retourne à capybara 1.3, les styles de travailler à nouveau. Quelqu'un sait comment résoudre ce problème, et/ou quel est le problème?
grâce,
Dave
Mise à jour 1.
hack:
J'ai trouvé un moyen raisonnable pour contourner le problème, en suivant les liens recommandés par simonmorley:
Capybara Webkit problème
qui pointe vers: capybara-capture d'écran
Il s'agit d'utiliser le capybara-capture d'écran bijou à obtenir une capture d'écran de ce que la page ressemble. Lorsque vous le combinez avec la save_and_open_page, ce qui génère le html, vous pouvez voir à quoi il ressemble, et de voir le code HTML.
save_and_open_page
Capybara::Screenshot.screenshot_and_open_image
Si je pouvais obtenir Capybara::Screenshot.screenshot_and_save_page
de travail, alors je pense que je pourrais avoir une solution (si le nom l'indique, l'action je pense qu'il n'). Cependant, quand je l'ai essayer, je reçois cannot load such file -- capybara/util/save_and_open_page
Mise à jour 2.
!! attendez, la screenshot_and_open_image n'est pas d'aujourd'hui (pas d'image png créé ou affichée). !!
Mise à jour 3.
Application De Test:
J'ai créé une application de test, et publié au test_capybara_screenshot sur Github.
Quand je lance cette application de test dans le développement, la page venir avec la tonitruante rouge style d'arrière-plan affiche. Quand je lance les tests, la seule chose qui fonctionne pour moi est le save_and_open_page, sauf qu'il n'y est pas de style.
Remarque, quand je lance les tests, j'obtiens le message d'avertissement suivant:
AVERTISSEMENT: Nokogiri a été construit contre LibXML version 2.7.8, mais a chargé dynamiquement 2.7.3
Détails de la rspec test:
- La save_and_open_page arrive avec un ennuyeux fond blanc (pas de
le style). - la screenshot_and_open_image revient avec le message d'erreur:
Rack::Test capybara pilote n'a pas de capacité de sortie des captures d'écran. Saut à la corde.
Échec de l'ouverture /~/Documents/expériences/test_capybara_screenshot/tmp/capybara/capture d'écran-2012-11-26-07-48-29.png avec des options {}: Pas d'application pour gérer '/~/Documents/expériences/test_capybara_screenshot/tmp/capybara/capture d'écran-2012-11-26-07-48-29.png'
- La screenshot_and_save_page retourne:
Une erreur s'est produite dans un croc
LoadError: impossible de charger le fichier -- capybara/util/save_and_open_page
s'est produite dans ~/.rvm/gems/ruby-1.9.3-p125@global/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in "requiert"
source d'informationauteur Taylored Web Sites
Vous devez vous connecter pour publier un commentaire.
Essayez d'ajouter les lignes suivantes à votre fichier gem
save_and_open_page ne fonctionnera pas sans cela, je ne crois pas.
-- Mis à jour --
J'ai testé pour vous, et quand j'ai utilisé l'ouvrir et enregistrer de la méthode, j'obtiens la même erreur. Dans mon jeu, c'est parce que ma page est de référencement:
Ce qui se passe dans Firefox, Chrome et Safari. Selon l'inspecteur, aucun des fichiers trouvés.
Je n'ai pas regardé ce dans trop de détails et de ne pas avoir de réponse pourquoi ça ne fonctionne pas. Cependant, il existe un certain nombre de personnes aux prises avec cette aussi:
https://github.com/jnicklas/capybara/issues/485
Et, un peu plus d'informations sur le capybara d'actifs et de précompilation:
https://github.com/jnicklas/capybara/pull/609
Et ce qui pourrait être une solution ici:
https://groups.google.com/forum/#!msg/ruby-capybara/SBCor8UUj7w/hv97EgUQ1P4J
Toutefois, si vous voulez juste pour voir votre page, vous pouvez essayer ceci: supprimer la ferraille save_and_open_page et modifier vos tests pour l'utilisation de javascript. De cette façon, mes pages ouvertes amende.
Essayer et laissez-moi savoir si cela aide.
réponse (à Partir de Taylored Sites Web):
Je vois la page pendant quelques secondes, puis il disparaît. Est-il un moyen de la fenêtre du navigateur pour ne pas fermer?
J'ai été en mesure de résoudre le problème avec save_and_open_page après certains blog de la navigation et à creuser. J'ai laissé tomber la capybara_screenshot joyau de mon projet. Vous pouvez voir mon travail code sur mon github test_capybara_screenshot référentiel. La solution que j'ai trouvé utilise quelques conseils que j'ai trouvé sur le capybara la page github.
Hypothèses:
La première chose que je fais est de le configurer de sorte que les actifs sont précompilés dans un répertoire de test. - Je le faire en ajoutant le code suivant dans le
spec/spec_helper.rb
fichier dans leRSpec.configure
boucle:- Je spécifier où les actifs sont pré-compilés dans le
config/environments/test.rb
fichier:Ce qu'il fait en sorte que le test de l'actif sont indépendants de l'évolution des actifs, et ne sont générées au cours d'une suite de test run.
Si vous faites cela, vous aurez probablement envie d'avoir git d'ignorer la
/public/assets*
répertoires.