Domanda

Ho iniziato la migrazione da cetriolo + Webrat di cetriolo + capibara. Ora il comportamento di "Dovrei vedere" sembra essere un po 'diverso. La maggior parte di questi non riescono ora, anche se non ho cambiato nulla sulla pagina. Ho sostituito il frammento di codice che deve essere trovato con una certa roba che è in ogni pagina e per qualche testo funziona e per altro testo non è così. Non riesco a trovare alcun modello in ciò che si trova nel contenuto della pagina e ciò che non lo è. Webrat utilizzata per stampare ciò che il contenuto della pagina è che ha trovato, nel caso in cui non conteneva la frase desiderata. Esiste un modo per avere capibara mostrano quale testo ha ottenuto dalla pagina in cui si è cercato di trovare il testo?

È stato utile?

Soluzione

Prova ad aggiungere questo passaggio:

Then show me the page

Altri suggerimenti

Then show me the page chiama Webrat / metodo save_and_open_page sottostante di capibara. Trovato che utile quando si lavora con bistecca.

Se si desidera avere il browser aprire la pagina quando la pagina non si utilizza la gemma 'Launchy'. Aggiungilo al file gioiello, e poi in / caratteristiche / supporto creare un file chiamato debugging.rb con contenuti:

After do |scenario|
   save_and_open_page if scenario.failed?
end

Se si sta utilizzando Javascript o Ajax nelle tue pagine e vogliono vedere cosa sta succedendo, ho trovato che il driver Poltergeist è molto bravo a che ti permette di entrare nel DOM e scoprire che cosa c'è che non va.

Se si imposta il driver di Capybara con l'opzione di debug remoto:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, inspector: true)
end

È possibile quindi mettere la seguente riga nel vostri passi:

page.driver.debug 

che spara su un nuovo browser Chromium con l'attuale set di stato di DOM, consentendo di ottenere alla console. (Sulla mia versione di Linux, ho dovuto link simbolico cromo per cromo browser ma altrimenti lavorato bene).

Informazioni Fonte: http://jonathanleighton.com/articles/2012/poltergeist-0-6 -0 /

Then show me the response non ha funzionato per me con cetriolo 1.1 Ho trovato utile scrivere un passo usando il comando di Capybara:.

print page.html

Questo emette lo stato attuale del DOM

Si potrebbe anche usare "Allora fammi vedere la risposta" che fornisce in uscita il codice HTML per la console se non si desidera utilizzare un browser.

Si potrebbe sempre avere catturare una schermata quando qualcosa non è riuscita. Metto a punto un sacco di mancanza di funzioni in questo modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top