2016-06-27 8 views
0

Javascript wird angezeigt Ich arbeite an einer Ruby-Anwendung, die Capybara und Poltergeist verwendet, um einige Web-bezogene Sachen zu tun.Javascript wird in Capybara + Poltergeist

Capybara wird die folgende Art und Weise initialisiert:

Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, :js_errors => true, :debug => true) 
end 
default_driver = :poltergeist 
Capybara.default_driver = default_driver 
Capybara.javascript_driver = default_driver 
Capybara.current_driver = default_driver 
Capybara.default_max_wait_time = 30 

Ich weiß, dass das Javascript, das lief irgendwann versagt wird, wahrscheinlich wegen eines Tippfehlers (aber es wegen eines anderen Grundes sein könnte), aber ich sehe keine Backtraces, wenn ich die Anwendung (bundle exec rake myapp:console) ausführen. Ich sehe die Debug-Ausgabe, die ziemlich nutzlos ist.

Ich sehe auch einige meiner console.log Anrufe (Ich vermute, dass die, die ich sehe nicht scheitern in irgendeiner Weise oder Ruby weiß einfach nicht, wie man diese zu drucken).

Meine Frage ist: Wie kann ich eine nützliche Ausgabe sehen, die mir helfen würde, meinen JS-Code zu debuggen?

PS: Bitte beachten Sie, dass die gesamte Anwendung innerhalb von Docker läuft, also denken Sie daran, wenn Sie mir den Wechsel von Poltergeist empfehlen.

Antwort

1

Vor der entsprechenden Seite Code ausgeführt wird, tun

page.driver.enable_logging 

Wie here erwähnt (obwohl in Bezug auf Webkit-Treiber), sollte es die Konsole Fehler auch zeigen.

+0

Ich habe keine Tests. Ich versuche einige Methoden in meiner Anwendung zu debuggen, also bin ich mir nicht wirklich sicher, ob all das "beschreiben ..." hier zutrifft. Oder tut es? – alexandernst

+0

Entschuldigung, ich habe Ihre Frage falsch interpretiert. Bitte sehen Sie die aktualisierte Antwort. –

+0

Ihr Update ist für "-webkit". Ich benutze 'Poltergeist'. So bekomme ich (erwarteterweise) 'NoMethodError: undefinierte Methode 'enable_logging' für # ' – alexandernst

Verwandte Themen