J'ai une grande suite de tests qui utilise poltergeist et capybara. Je continue à avoir l'erreur suivante:
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).
Je suis à peu près sûr d’avoir défini js_errors: false, mais je reçois toujours les erreurs. Je me rends compte que la solution optimale consiste à réparer le JS, mais j'hérite du code hérité et la correction des erreurs est hors de portée pour mon rôle. Mon fichier d'assistance de spécifications ressemble à ceci:
ENV["Rails_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/Rails'
require 'rspec/autorun'
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, {js_errors: false})
end
Capybara.current_driver = :poltergeist
Capybara.configure do |config|
config.match = :one
config.exact_options = true
config.ignore_hidden_elements = true
config.visible_text_only = true
end
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.infer_base_class_for_anonymous_controllers = false
config.order = "random"
end
Je suis confus quant à savoir où aller ou si j'ignore correctement les erreurs JS. Faites-moi savoir s'il y a d'autres informations que j'ai peut-être oubliées ou omises d'inclure. Merci pour votre temps.
Je ne sais pas pourquoi votre code ne fonctionne pas. Je viens d'avoir une erreur JS similaire et j'ai fait ce qui suit (comme mentionné sur cette page (recherche de js_errors)) - et, en gros, ce que Leonardo Galani a suggéré (j'ai voté en faveur de la réponse de Leonardo: -1 à 0):
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
options = {js_errors: false}
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, options)
end
J'ai aussi testé ce style, et cela a également fonctionné:
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, {js_errors: false})
end
FWIW: Mon erreur (dans le test du concombre) ressemblait à ceci:
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: Unable to delete property.
TypeError: Unable to delete property.
at :84
at http://maps.gstatic.com/cat_js/maps-api-v3/api/js/17/20/%7Bmain,geometry%7D.js:19 in Ke
at http://maps.gstatic.com/cat_js/maps-api-v3/api/js/17/20/%7Bmain,geometry%7D.js:19 in Ke
at http://maps.gstatic.com/cat_js/maps-api-v3/api/js/17/20/%7Bmain,geometry%7D.js:18
@ Leonardo Galani
Selon le guide de style Ruby, votre commentaire de syntaxe n'est pas vrai. Donc, la réponse pourrait être {js_errors: false} aussi.
J'ai eu le même problème, js_errors: false
n'a pas résolu le problème, mais phantomjs_logger: "/dev/null"
oui!