2011-12-23 14 views
12

Sto usando capybara, capybara-webkit, capybara-screenshot insieme al cetriolo. (Rubino 1.9.3, Rails 3.1.3) e Capybara.javascript_driver = :webkit inoltre è regolato env.rbCapybara-webkit prova ad aprire example.com

Purtroppo l'esecuzione di una specifica cetriolo con @javascript non riuscirà mai per qualche motivo e le schermate di errore solo catturano example.com.

L'URL che in realtà provo ad aprire viene generato con un risultato del router rails per uno dei miei modelli, ad es. con visit products_url

Quindi, come posso evitare che finisca per interrogare example.com?

Qualsiasi input è molto benvenuto.


Solo perché il commento è incasinato - qui è quello che ho trovato è stato la soluzione:

Capybara.run_server = true 
Capybara.server_port = 7787 
Before '@javascript' do 
    Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}" 
end 

risposta

11

Prova utilizzando visit products_path invece. Non è consigliabile utilizzare URL assoluti nella sezione "Gotchas" di README.

+0

Utilizzando products_path si conclude con un errore, in primo luogo: Impossibile caricare URL: file: /// prodotti (Capybara :: :: driver Webkit :: WebkitInvalidResponseError) Ma una volta ho anche configurare l'app_host Si parte lavoro. Ecco, questo è il mio attuale configurazione: Capybara.run_server = true Capybara.server_port = 7787 Prima '@javascript' fare Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}" end Inoltre questo: http://www.emmanueloga.com/2011/07/26/taming-a-capybara.html vedem per risolvere alcune altre insidie ​​con capibara e binari 3.1 – pagid

+0

Sembra che i trucchi non si applicano a Webkit quando parlando di URL assoluti –

1

Per me, c'era una gran quantità di sneaker "gotcha" (e stavo usando Capybara con Rspec). Originariamente in una specifica ho avuto:

visit "foos/5" 

questo ha funzionato bene con Rack::Test ma quando ho voluto passare al driver webkit per testare le interazioni js, ho ottenuto tale eccezione (Impossibile caricare URL: file: /// prodotti (Capybara :: :: driver Webkit :: WebkitInvalidResponseError)).

Quello che dovevo fare era modificare il percorso sono passato a visitare, in questo modo:

visit "/foos/5" 

Succes !!

1

Ecco un altro potenziale trucco, pubblicato per altri che potrebbero avere questo problema. Stavo testando il caching delle azioni e la chiave che Rails genera sembra "views/www.example.com/products". Ciò accade anche se si utilizza products_path come URL. Ciò può comportare la necessità di impostare il nome del server in modo da poter sapere in anticipo quale chiave cache attendersi.

Problemi correlati