2014-01-29 13 views
5

Phantome JS Version: 1.9.1 Poltergeist Version: 1.3.0Phantom JS Fehler bei Youtube Video

Ab heute youtube eingebettete Videos jetzt einem Poltergeist Fehler geben, wenn JavaScript-Tests ausgeführt werden. Mein Youtube-Code ist nur der Standard-Youtube-Code. Hier ist ein Beispiel:

<iframe width="560" height="315" src="//www.youtube.com/embed/AW9Z3cGOlGM?rel=0" frameborder="0" allowfullscreen></iframe> 

Und die Fehler bekomme ich nur von dieser Seite zu besuchen, während du JavaScript aktivierst ist:

Failure/Error: page.find(".container.registrations.false.government")["style"].should have_content("test.jpg") 
Capybara::Poltergeist::JavascriptError: 
    One or more errors were raised in the Javascript code on the page. If you don't care about these errors, you can ignore them by setting js_errors: false in your Poltergeist configuration (see documentation for details). 

    TypeError: 'null' is not an object (evaluating 'a.dataset') 
     at http://s.ytimg.com/yts/jsbin/www-embed-player-vfl6vSff7.js:97 
     at http://s.ytimg.com/yts/jsbin/www-embed-player-vfl6vSff7.js:88 in vg 
     at http://s.ytimg.com/yts/jsbin/www-embed-player-vfl6vSff7.js:85 
     at http://s.ytimg.com/yts/jsbin/www-embed-player-vfl6vSff7.js:98 

auch in einigen Tests Poltergeist gerade stirbt ..

Failure/Error: visit root_path 
Capybara::Poltergeist::DeadClient: 
    PhantomJS client died while processing {"name":"visit","args":["http://subdomain13.lvh.me:3003/"]} 

Zusätzlich Es ignoriert diese Fehler nicht, wenn es geschieht:

Capybara.register_driver :poltergeist_without_js do |app| 
    Capybara::Poltergeist::Driver.new(app, :js_errors => false) 
end 
Capybara.javascript_driver = :poltergeist_without_js 
+0

nicht eine große Lösung, aber wir am Ende zu haben, Stellen Sie sicher, dass unsere eingebetteten Videos nur aufgrund einer Benutzerinteraktion angezeigt werden, um zu verhindern, dass phantom versucht, den ytimg-Code auszuführen. Dies hat unsere Tests bestanden (und uns bereitstellen lassen). – Kyle

+0

Ja, im Moment benutze ich '